2014-06-24 90 views
0

我一直在瀏覽StackOverflow和其他幾個網站,以獲取有關條件表單域驗證的幫助。大多數問題都與複選框有關,但我的問題是圍繞選擇字段。jQuery條件表單驗證

我已經部署了jQuery和jQueryUI,並且所有工作都在這方面正常工作。我沒有安裝jQuery Validate,因爲我認爲這可以在沒有它的情況下實現,但會很樂意被告知。問題如下:

如果用戶選擇「打開」,則需要「dateOpened」字段。如果他們選擇「關閉」,那麼將需要「dateClosed」。

<form action="" method="post"> 
<select name="select12" id="select12"> 
    <option>Select...</option> 
    <option value="1">Open</option> 
    <option value="2">Closed</option> 
</select> 

<input name="dateOpened" id="dateOpened" type="text" /> 
<input name="dateClosed" id="dateClosed" type="text" /> 

<input name="submit" type="submit" value="update"/> 
</form> 

任何人都可以建議最佳的解決方案嗎?

感謝 尼克

+0

您的驗證腳本在哪裏?或者你想擁有輸入字段的必需屬性? –

+1

是這樣的嗎? http://jsfiddle.net/8T3Tj/2/我不想發佈它作爲答案,因爲你已經使用JQuery驗證,我不確定你目前的驗證過程......但是,這是一些基本的邏輯。 .. – sinisake

回答

0

下面是代碼,希望它有幫助 -

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("#update").click(function() { 
    var abc = $("#select12").val(); 
    if (abc == "1") { 
     var open = $("#dateOpened").val(); 
     alert(open); 
     } 
    else { 
     var close = $("#dateClosed").val(); 
     alert(close); 
     } 
    }); 
}); 
</script> 
</head> 

<body> 
<select name="select12" id="select12"> 
    <option>Select...</option> 
    <option value="1">Open</option> 
    <option value="2">Closed</option> 
</select> 
<input name="dateOpened" id="dateOpened" type="text" /> 
<input name="dateClosed" id="dateClosed" type="text" /> 
<input name="submit" type="submit" id="update" value="update"/> 
</form> 
</body> 
</html> 
+0

完美 - 只需將&&(「#dateOpened」)。val()==''添加到第一個,並使用不同的ID複製到if語句的第二個,並且它完美地工作。謝謝。 –

0

試試這個

$('#select12').on('change',function() { 
    if($(this).val()=="1") { 
    $('#dateOpened').prop('required',true); 
    $('#dateClosed').removeAttr('required'); 
    } 
    if($(this).val()=="2") { 
    $('#dateClosed').prop('required',true); 
    $('#dateOpened').removeAttr('required'); 
    } 
} 
0

我會使用 「驗證」 插件,寫我自己的驗證方法 - 是這樣的:

$.validator.addMethod("dateValMethod", function (value, element) { 
    var valid = false; 
    if ((value== 1 && value_of_dateOpened_not_empty) || (value== 2 && value_of_dateClosed_not_empty)) { 
     valid = true; 
    } 
    return valid; 
}, "Please blah blah blah...");