onchange не работает в jquery appendTo()

#javascript #jquery #select #onchange #appendto

#javascript #jquery #выберите #onchange #appendto

Вопрос:

Я новичок в jQuery и пытался создать динамическое выпадающее меню с помощью select. Однако я не могу использовать onChange в appendTo. Есть предложения?

 <script>
$(function() {
    var addDiv = $('#content');
    var n = 1;
    jq144('#add_match').live('click', function() {
        $('<p ><select onchange = "showUser(this.value, "select_team_'   (n)   '")" name="select_team_'   (n)   '" id="select_team_'   (n)   '"><option value = "">Team 1</option><option value = "a">A</option> <option value = "b">B</option><option value = "c">C</option></select> </p>').appendTo(addDiv);
      n; 
    });
});
</script>
  

Я также пытался использовать on(), но не могу передать ему параметры.

Вот showUser:

 <script>
    function showUser(str, select_name) {
        var num = parseInt(select_name.substr(select_name.length - 1));
        alert(num   1);
        if (window.XMLHttpRequest) {
            xmlhttp=new XMLHttpRequest();
        } else {
           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState==4 amp;amp; xmlhttp.status==200) {
                $("select[id='select_team_"   (num   1)   "']").html(xmlhttp.responseText).selectmenu( "refresh");
            }
        }
        xmlhttp.open("GET","getplayers.php?q=" str.value,true);
        xmlhttp.send();
    }
</script>
  

Наконец-то я смог решить проблему с помощью .on() .

Комментарии:

1. Если у вас уже есть jQuery, вам следует воспользоваться $.GET

Ответ №1:

Попробуйте заменить ваш щелчок на это:

    jq144('#add_match').live('click', function() {
    $('<p ><select onchange ="showUser(this.value, select_team_"'   (n)   '") name="select_team_'   (n)   '" id="select_team_'   (n)   '"><option value = "">Team 1</option><option value = "a">A</option> <option value = "b">B</option><option value = "c">C</option></select> </p>').appendTo(addDiv);
   n; 
 });
  

Это может вам помочь. В определении вашей функции onchange есть несколько недопустимых кавычек, закрывающих строку.

Комментарии:

1. Спасибо за ваш ответ. В конце концов я решил это с помощью .on()