我有以下代码:
var x;
x=$(document);
x.ready(initEvents);
function initEvents()
{
var x;
x = $("#send");
x.click(pressButton);
x = $("#clean");
x.click(cleanForm);
}
/*this method validates the form*/
function pressButton()
{
$("#form1 :input").attr("disabled", true);
$("#form1").validate(
{ rules:
{
//sets the rules for validate
},
messages:
{
//sets the message for validates
},
submitHandler: function (form)
{
//send the form
}
});
}
我的问题是,如果将此行$("#form1 :input").attr("disabled", true);
置于不执行验证但是如果我评论验证函数效果很好。问题是为什么我不能执行这两行?我在代码中做错了什么?
答案 0 :(得分:1)
我不认为这是你的实际问题,但值得注意的是你应该注意getting your curly braces right when you're working with JavaScript。在键名和值的左括号之间添加换行符可能会导致键名在某些情况下被解释为a JavaScript label。
最好通常使用这种风格,以避免以后遇到奇怪的错误:
// Why complicate this?
$(document).ready(initEvents);
function initEvents() {
$("#send").click(pressButton);
$("#clean").click(cleanForm);
}
/*this method validates the form*/
function pressButton() {
$("#form1 :input").attr("disabled", true);
$("#form1").validate({
rules: {
// the rules for validate
},
messages: {
//sets the message for validates
},
submitHandler: function (form) {
//send the form
}
});
}
答案 1 :(得分:0)
我这样解决了我的问题,在验证后将该行放入验证的提交者中禁用了表单
/*this method validates the form*/
function pressButton()
{
$("#form1").validate(
{ rules:
{
//sets the rules for validate
},
messages:
{
//sets the message for validates
},
submitHandler: function (form)
{
//disable the form
$("#form1 :input").attr("disabled", true);
//send the form
}
});
}