在输入改变之前阻止提交

时间:2011-12-07 16:55:06

标签: jquery ajax live

我有这个小代码通过ajax发布:

$('#submit').click(function () {
    var myName = $('#name').val();
    var myContent = $('#content').val();

    // ajax
    $.ajax({
        type: 'post',
        url: '/ajax.process.php',
        data: {
            post_name: myName,
            post_content: myContent
        },
        dataType: 'json',
        success: function (data) {
        alert(OK);
        }
    }); // end ajax
});

在我的输入发生变化之前,如何阻止或禁用.click,我的意思是在用户进行一些修改之前?

4 个答案:

答案 0 :(得分:1)

最佳且最明显的解决方案是最初在提交按钮上设置disabled属性(input type="submit" name="submit" id="submit" disabled>),然后在用户更改时删除该属性($('#submit').removeAttr('disabled');)您感兴趣的任何输入值。

答案 1 :(得分:1)

您可以使用type =“button”替换submit,并在用户输入更改时使用该ajax,例如:

//make input type="submit" to
<input type="button".... />

$("yourInputId").blur(function() {
  $.ajax({}); // use ur ajax here
});

答案 2 :(得分:0)

您可以在var canSubmit = false;上设置一个标记,并在文本字段的$.change()事件中将其更改为true。

答案 3 :(得分:0)

您可以隐藏提交按钮,然后在调用输入的更改方法时显示它们,如

$("input").change(function(){
    $("input[type=submit]").show()
});