如果选择了某个列表选项,则阻止提交

时间:2014-06-28 23:04:37

标签: jquery

我使用jquery 1.3.2。 我有一个页面,其中包含选择列表和提交按钮。我想阻止提交,如果当前选中(未在html中选中)选项等于某个值(已取消)?

HTML:

 <form id="update-form">
  <select id="edit-status"> 
   <option value="cancelled">Cancelled</option>
   <option value="sent">Sent</option>
   <option value="pending" selected="selected">Pending</option>
  </select>

<input id="submitbutton" value="Update" type="submit">

jquery的:

$(document).ready(function() {
$("#edit-status").change(function () {
if (
    $('#edit-status').val() == 'cancelled'
) {
    $("#update-form").submit(function(e) {
        alert('alert');
        e.preventDefault(e);
    });
 }
});
});

jsfiddle:http://jsfiddle.net/q9Mh9/1/

代码可以正常工作,但前提是我第一次选择“已取消”值。在那之后,无论我选择哪个选项,提交后我都会得到提醒。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您错误地绑定了表单提交事件。在您的代码中,当首次更改下拉列值时,将绑定form.Submit事件。绑定事件后,每次单击更新按钮时都会触发该事件。

以下解决方案适合您。

演示:http://jsfiddle.net/q9Mh9/6/

$(document).ready(function () {
    $("#update-form").submit(function (e) {
        if ($('#edit-status').val() == 'cancelled') {
            alert('alert');
        }
        e.preventDefault(e);
    });
    $("#edit-status").change(function () {
        $("#update-form").submit();
        return false;
    });
});