在jquery的appendTo()中onchange不起作用

onchange not working in jquery appendTo()

本文关键字:onchange 不起作用 jquery appendTo      更新时间:2023-09-26

我是jQuery新手,一直在尝试使用select创建一个动态下拉菜单。然而,我无法在appendTo中使用onChange。有什么建议吗?

<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 && 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()解决了这个问题。

试着用这个代替你的点击:

   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函数定义有一些无效的字符串闭引号