Javascript 在满足验证后,使提交可单击

Javascript 在满足验证后,使提交可单击,javascript,jquery,Javascript,Jquery,我有以下html: <p>Genre: {{ create_production_form.genre }}</p> <p>Privacy: {{ create_production_form.privacy }}</p> <p><input type="submit" name="next" value="Next" disabled="disabled"></p> 唯一的问题是,它需要是“活动”的,这样它就

我有以下html:

<p>Genre: {{ create_production_form.genre }}</p>
<p>Privacy: {{ create_production_form.privacy }}</p>
<p><input type="submit" name="next" value="Next" disabled="disabled"></p>

唯一的问题是,它需要是“活动”的,这样它就可以检测到所有这些字段何时都已填写。

假设它们都是文本输入,您可以在
键控上进行验证,否则在
更改上进行验证也可以。

Wut?“event”处理委托,因此“event handler”需要具有
live()
on()
,具体取决于您使用的jQuery版本。这意味着方程中的一个重要部分被遗漏了

我所说的“事件”方法是
submit
change
click
。您必须将代码委托给这些事件之一——使用前面提到的
live()
on()
方法

否则,如果您只是想在数据已填充的情况下启用它们

$('form :input').change(function(){
  if ($("id_genre").val() && $("id_privacy").val()) {
    $("input[name=next]").attr("disabled","")
  }
});

这将检查表单以查看输入是否更改,如果更改,它将测试值,您将得到结果。

尝试使用悬停,因为用户必须在单击按钮之前悬停在按钮上,我希望它有所帮助

$("input[name=next]").hover(function() {


    if ($("id_genre").val()!="" && $("id_privacy").val()!="") {
        $("input[name=next]").removeAttr("disabled")
    }
});
演示

在演示中,当您单击有效按钮时,它将启用下一个按钮:请让我知道我是否遗漏了任何一点

代码

$("input[type='submit']").prop('disabled', true);
$("#valid").click(function() {

    $("input[type='submit']").prop('disabled', false);
})​
在您的情况下

 if ($("id_genre").val() != "" && $("id_privacy").val() != "") {
        $("input[type='submit']").prop("disabled", false)
    }
喜欢
$("input[type='submit']").prop('disabled', true);
$("#valid").click(function() {

    $("input[type='submit']").prop('disabled', false);
})​
 if ($("id_genre").val() != "" && $("id_privacy").val() != "") {
        $("input[type='submit']").prop("disabled", false)
    }