![](/img/trans.png)
[英]Is there a logical operator that returns true if only one of the conditions are true?
[英]If statement returns true though only one of several conditions are met (jQuery)
我想通知用戶,如果在提交之前未回答任何可選的單選按鈕,則要答復用戶表單(以確保已故意跳過了它們)。 我的問題是,盡管我使用多個條件設置了一個if語句,但是當滿足任何一個條件而不是所有條件都滿足時,if語句返回true。 我正在使用jQuery 1.7.1。
Javascript:
$("#optmsg").show();
function updateFormEnabledOpt() {
if (verifyOpt()) {
$("#optmsg").hide();
} else {
$("#optmsg").show();
}
}
function verifyOpt() {
if ($("#formidable input:radio[name='q11']:checked").val() !== 'undefined' && $("#formidable input:radio[name='q12']:checked").val() !== 'undefined' && $("#formidable input:radio[name='q13']:checked").val() !== 'undefined') {
return true;
} else {
return false;
}
}
$('#formidable input:radio[name="q11"]').change(updateFormEnabledOpt);
$('#formidable input:radio[name="q12"]').change(updateFormEnabledOpt);
$('#formidable input:radio[name="q13"]').change(updateFormEnabledOpt);
因此:只要這三個問題中的任何一個都具有選中的單選按鈕,就將#optmsg隱藏。 Jsfiddle(腳本附帶一些html): http : //jsfiddle.net/rnPA6/
更新:感謝您的幫助! 以驚人的速度,我可能會補充! 這是一個有效的小提琴: http : //jsfiddle.net/rnPA6/14/
如果在輸入元素中未設置任何不等於undefined
,則val()
方法將返回空字符串。 嘗試此操作,如果該值為空,則不會通過。
if ($("#formidable input:radio[name='q11']:checked").val()
&& $("#formidable input:radio[name='q12']:checked").val()
&& $("#formidable input:radio[name='q13']:checked").val() ) {
}
如果沒有為輸入單選按鈕設置任何值,則當您在其上調用val()
方法時,jQuery將返回"on"
。 因此,如果未設置,則應為每個單選按鈕設置至少一個空值。
您正在比較使用and(&&)。 在此 jsfiddle中,我修復了您的代碼以使用or(||)。
您正在與包含文本'undefined'
而不是值undefined
的字符串進行比較。
這樣可以:
function updateFormEnabledOpt() {
$("#optmsg").show();
if (($("#formidable input:radio[name='q11']:checked").val() !== undefined) && ($("#formidable input:radio[name='q12']:checked").val() !== undefined) && ($("#formidable input:radio[name='q13']:checked").val() !== undefined)) {
$("#optmsg").hide();
}
}
$('#formidable input:radio[name="q11"]').change(updateFormEnabledOpt);
$('#formidable input:radio[name="q12"]').change(updateFormEnabledOpt);
$('#formidable input:radio[name="q13"]').change(updateFormEnabledOpt);
實際觀看: http : //jsfiddle.net/BwUWp/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.