1

我有一个由 php 生成的选择。

<div id="panneauModifAnnonce" class="divAdmin">
<form id="modifierAnnonceForm">

<label class ="labelEmail">ID</label>
<input id="inp_idAnnonce" class ="inputEmail" />

<label class ="labelEmail">Titre</label>
<input id ="inp_titreAnnonce" class ="inputEmail" />

<label class ="labelEmail">Description</label>
<textarea id ="inp_txtDescription" class ="inputEmail" maxlength="500" ></textarea>

<label class ="labelEmail">Taille</label>
<select id ="inp_selectTaille" class ="inputEmail">
<option value="" selected="selected"> </option>
<optgroup label="Taille">
<option value="XS-36">XS-36 </option>
<option value="S-38">S-38 </option>
<option value="M-40">M-40 </option>

</optgroup>
<optgroup label="Pointure">                                                 
<option value="36">36 </option>
<option value="37">37 </option>
<option value="38">38 </option>

</optgroup>                                                
</select>

<label class ="labelEmail">Couleur</label>
<input id="inp_couleurAnnonce" class ="inputEmail" />

<label class ="labelEmail">Marque</label>
<input id ="inp_marqueAnnonce" class ="inputEmail" />

<label class ="labelEmail">Prix</label>
<input id ="inp_prixAnnonce" class ="inputEmail" />

<label class ="labelEmail">Annonceur</label>
<input id ="inp_annonceur" class ="inputEmail" />

<label class ="labelEmail">Catégories</label>
<select id ="inp_selectCatAnnonces" class ="inputEmail">
<option value="" selected="selected"> </option>
   <?php include_once 'includes/inc_selectCategories.php'; ?>
</select>

<label class ="labelEmail">Validité</label>
<div>
   <input type="radio" name="rad_valid" id ="inp_radValide" value ="1" /><span>Oui</span>
   <input type="radio" name="rad_valid" id ="inp_radinvalide" value ="0" /><span>Non</span>
</div>
<input type="submit" name="submit_modifier" value="Enregistrer les modifications" />
<input type="button" name ="btn_annulerModif" value ="Annuler" />
</form>
</div><!-- panneauModifAnnonce-->

我正在尝试使用 jquery 获取和选择值,但似乎 jquery 不喜欢包含函数。我读过其他一些帖子,但我认为他们没有谈论同样的问题。任何帮助都会很棒!谢谢!

jQuery代码:

$(document).ready(function(){
    $("#btn_modifierAnnonce").click(function(){

        $.each($("input[type='checkbox']:checked"), function(){
            //attribution des données au champs correspondant et sauvegarde de la valeur du champs
            var id = $(this).parent().parent().find("td:eq(0)");
            $("#inp_idAnnonce").val(id.text());

            var titre = $(this).parent().parent().find("td:eq(1)");    //  eq(2) = cherche le 2è element qui correspond au sélécteur                                                
            $("#inp_titreAnnonce").val(titre.text());

            var description = $(this).parent().parent().find("td:eq(2)");
            $("#inp_txtDescription").val(description.text()); 

            var taille = $(this).parent().parent().find("td:eq(4)");            
            $("#inp_selectTaille option[value="+taille.text()+"]").attr('selected','selected');

            var couleur = $(this).parent().parent().find("td:eq(5)");
            $("#inp_couleurAnnonce").val(couleur.text());

            var marque = $(this).parent().parent().find("td:eq(6)");
            $("#inp_marqueAnnonce").val(marque.text());

            var prix = $(this).parent().parent().find("td:eq(8)");
            $("#inp_prixAnnonce").val(prix.text()); 

            //it doesnt work only for this case.. 
            var categorie = $(this).parent().parent().find("td:eq(7)");
            $('#inp_selectCatAnnonces option[value="'+categorie.text()+'"]').attr('selected','selected');

            var annonceur = $(this).parent().parent().find("td:eq(9)");
            $("#inp_annonceur").val(prix.text());

            var validite = $(this).parent().parent().find("td:eq(10)");
            if(validite.text()=="1"){
                $('#inp_radValide').attr('checked','checked');                        
            }
            else{
                $('#inp_radinvalide').attr('checked','checked');                        
            }


        })//fin $.each(input select)
    })//fin $(#btn_modifierAnnonce).click
 })//fin document.ready

我使用 var 类别获得了正确的值,但我无法在选择中自动选择值

4

4 回答 4

0

这就是该val()功能的用途:

$("#inp_selectCatAnnonces").val('newlyselectedvalue');

并通过以下方式获取所选值:

$("#inp_selectCatAnnonces").val();
于 2013-02-18T14:31:28.593 回答
0

您可能对引号和 value 属性有疑问。尝试像这样组合简单和双引号:

$('#inp_selectCatAnnonces option[value="'+categorie.text()+'"]').attr('selected', true);
于 2013-02-18T14:40:46.893 回答
0

要开始只需简单地删除selected="selected". 因为无论如何默认选择第一个元素。

然后包括includes/inc_selectCategories.php你正在做的事情。确保填充的数据是有效的 HTML!使用 FireBug 或类似工具执行此操作。(大多数浏览器中的 F12)。

然后将您的 Javascript 代码更改为:

// On DOM ready. This is very important!
$(function() {
    var categorie = $(this).parent().parent().find("td:eq(7)");
    // console.log ( categorie.text() ); // Make sure it returns a valid value!!

    // Select the right value from the dropdown
    $('#inp_selectCatAnnonces').val(categorie.text());
});

只要确保您至少alert获得您想要从中获得的价值categorie.text()。我怀疑该值与<select>列表中的值不完全匹配。还要确保values里面的内容是正确的。

这是一个说明此行为的示例:

http://jsfiddle.net/3g4PU/

于 2013-02-18T15:05:02.577 回答
0

对不起,我打扰了你们:我自己找到了。

我检查了 PHP 脚本,选项的值是 id 不是正确的值!

谢谢大家!

于 2013-02-18T15:13:50.150 回答