[英]form submit
在此函數中,基於輸入的值,表單提交為true / false。 為什么在這個函數中沒有返回true?
基本上,我的if語句測試表單輸入中的問號。 如果有,那么我不希望表單提交到search.php。 如果沒有問號,那么是else語句,那么我希望表單提交給search.php。 我嘗試使用return true; 使.form1提交,但它不起作用。 然后我嘗試了$('。form1')。submit(),但這使得它在輸入被按下之前提交。
<script>
$(".askInput").keyup(function() {
if ($(this).val().indexOf("?") != -1) {
$(this).css({"color" : "#00bfff", 'border-top-right-radius' : '0px', 'border-bottom-right-radius' : '0px', '-moz-border-top-right-radius' : '0px', '-moz-border-bottom-right-radius' : '0px', '-webkit-border-top-right-radius' : '0px', '-webkit-border-bottom-right-radius' : '0px'});
$('.searchEnter').stop().animate({
marginLeft: "310px"
}, 200 );
$('.form1').submit(function () {
return false;
});
} else {
$(this).css({"color" : "#333", 'border-top-right-radius' : '5px', 'border-bottom-right-radius' : '5px', '-moz-border-top-right-radius' : '5px', '-moz-border-bottom-right-radius' : '5px', '-webkit-border-top-right-radius' : '5px', '-webkit-border-bottom-right-radius' : '5px'});
$('.searchEnter').stop().animate({
marginLeft: "250px"
}, 200 );
$('.form1').submit(function () {
return true;
});
}
});
</script>
嘗試。
$('.form1').submit(function (e) {
if ($('.askInput').val().indexOf("?") != -1) {
e.preventDefault();
}
$(this).submit();
});
而不是不斷更改表單的提交處理程序,為什么不在提交時檢查問號?
$('.form1').submit(function () {
if ($('.askInput').val().indexOf("?") != -1) return false;
});
$(".askInput").keyup(function () {
if ($(this).val().indexOf("?") != -1) {
$(this).css({
"color": "#00bfff",
'border-top-right-radius': '0px',
'border-bottom-right-radius': '0px',
'-moz-border-top-right-radius': '0px',
'-moz-border-bottom-right-radius': '0px',
'-webkit-border-top-right-radius': '0px',
'-webkit-border-bottom-right-radius': '0px'
});
$('.searchEnter').stop().animate({
marginLeft: "310px"
}, 200);
} else {
$(this).css({
"color": "#333",
'border-top-right-radius': '5px',
'border-bottom-right-radius': '5px',
'-moz-border-top-right-radius': '5px',
'-moz-border-bottom-right-radius': '5px',
'-webkit-border-top-right-radius': '5px',
'-webkit-border-bottom-right-radius': '5px'
});
$('.searchEnter').stop().animate({
marginLeft: "250px"
}, 200);
}
});
$('.form1').submit(function () {
return true;
});
這種結合,只是返回函數true
到submit
事件。 即在此之后,當您提交表單時,該函數將返回true
。 就是這樣。
這是手冊條目 :
.submit( handler(eventObject) )
handler(eventObject)
每次觸發事件時執行的函數。
如果您只想提交表單,請使用$('.form1').submit()
。 如果您不想提交表單,請不要調用.submit()
。 即:
if (...) {
...
// don't call submit
} else {
...
$('.form1').submit();
}
使用不帶任何參數的submit
: $('.form').submit()
我認為你想在askInput條目無效時阻止表單提交。
將提交處理程序綁定到表單時,它始終是附加的,因此每次運行keyUp處理程序時,都會向表單添加一個額外的提交處理程序。 其中一個必然會“返回false”,阻止表單提交。
相反,可能禁用提交按鈕或向表單添加“無效”類,並添加單個表單提交處理程序,以確保表單沒有無效的類。
例如:
<form>
<input name="ask" /> <input type="submit" />
</form>
<script>
$('form').submit(function(e) {
if ($(this).hasClass('invalid')) {
e.preventDefault();
}
});
$('input[name="ask"]').keyup(function(e) {
if ($(this).val().indexOf("?") != -1) {
// ...
$(this.form).addClass('invalid');
// or
$(':submit', this.form).attr('disabled', 'disabled');
} else {
// ...
$(this.form).removeClass('invalid');
// or
$(':submit', this.form).removeAttr('disabled');
}
});
</script>
或者,使用經過實戰考驗的jQuery驗證庫,如jQuery ketchup 。
Blender試圖告訴你的是什么(在所有jQuery魔法中,如果你喜歡那種東西)是為表單的提交事件添加一個監聽器來查看輸入並返回false,如果有的話? 那里。 簡單來說,POJS術語:
<form onsubmit="return validateInput(this);">
<input name="foo" value="?">
<input type="submit">
</form>
<script type="text/javascript">
function validateInput(form) {
if (/\?/.test(form.foo.value)) {
// value has a ?, ask user to fix it
alert('Get rid of ? knucklehead!!');
// cancel submit
return false;
}
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.