在jQuery / Ajax表单提交中没有触发onChange事件

时间:2016-07-13 04:42:39

标签: javascript ajax

使用“类型”和“操作”方法提交表单

onChange事件在Firefox和Chrome中都可以正常使用此方法。

<form name="frmname" action="./add_p.php" method="POST">
    <div>
        <select name="cbo_name" id="cbo_name" onChange="dosomething();">
            <option value="USA">America</option>
            <option value="CAN">Canada</option>
            <option value="UK">England</option>
        </select>
    </div>
</form>

使用jQuery / Ajax提交表单

onChange事件未在此方法中触发,因此我使用了onClick事件,它在Firefox和Chrome中都运行良好。

<form name="frmname" id="frmname" novalidate>
    <div>
        <select name="cbo_name" id="cbo_name" onClick="dosomething();">
            <option value="USA">America</option>
            <option value="CAN">Canada</option>
            <option value="UK">England</option>
        </select>
    </div>
</form>


Ajax call on JS page

$.ajax({
.
.
})

为什么会这样?我很想知道这一点。 TY

4 个答案:

答案 0 :(得分:1)

您的代码在onChange上正常运行。以下是我检查过的代码。

<form name="frmname" id="frmname" novalidate>
    <div>
        <select name="cbo_name" id="cbo_name" onChange="dosomething(this.value);">
            <option value="USA">America</option>
            <option value="CAN">Canada</option>
            <option value="UK">England</option>
        </select>
    </div>
</form>
<script>
    function dosomething(value) {
        alert(value);
    }
</script>

答案 1 :(得分:0)

这不起作用,因为在选择框中您没有使用选项。 对于onchange选项是必需的。您只需添加代码即可查看。

<form name="frmname" action="./add_p.php" method="POST">
    <div><select name="cbo_name" id="cbo_name" onChange="dosomething(this.value);">
            <option value="1">1</option>
            <option value="2">2</option>
        </select></div>
</form>
<script>
    function dosomething(value) {
        alert(value);
    }
</script>

如果您再次遇到问题,请与我联系。

答案 2 :(得分:0)

试试这个:

(你的HTML)

<form name="frmname" action="./add_p.php" method="POST">
    <div>
        <select name="cbo_name" id="cbo_name" >
            <option value="USA">America</option>
            <option value="CAN">Canada</option>
            <option value="UK">England</option>
        </select>
    </div>
</form>

(js handler)

$(document).ready(function() {

     $("#cbo_name").change(function(e) {
        var cbo_nameValue = $(this).val();

        your.function.dosomething(cbo_nameValue);

    });

}

答案 3 :(得分:-1)

尝试这个

<select name="cbo_name" id="cbo_name" onChange="dosomething()">
     <option value="USA">America</option>
        <option value="CAN">Canada</option>
        <option value="UK">England</option>
</select>

功能

后无需分号