我想驗證這種形式,並設置跨度值,如果相應的輸入值是空的。然而,.siblings()
和.next()
不工作。跨度的設定值,如果輸入爲空
$('#cf_submit').on("click", function(e) {
e.preventDefault();
validateForm();
});
function validateForm() {
if ($('#cf_name').val() || $('#cf_email').val() == '') {
//$('.calc_error').text('Required'); //THIS WORKS
$(this).siblings('.calc_error').text('Required'); //doesnt work
//$(this).parent("div").children('span').text('Required') //doesn't work
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="" method="post" novalidate="novalidate">
<div>
<label for="cf_name">Name </label>
<input class="calc_input" type="text" id="cf_name" name="cf_name" pattern="[a-zA-Z0-9 ]+" size="40" />
<br>
<span class="calc_error"><?php echo $nameErr; ?></span>
</div>
<div>
<label for="cf_email">Email </label>
<input class="calc_input" type="email" id="cf_email" name="cf_email" size="40" />
<br>
<span class="calc_error"><?php echo $emailErr; ?></span>
</div>
<input type="submit" class="submit_button" id="cf_submit" name="cf_submit" value="Submit" />
</form>
貴validateFrom知道'this'背景?函數調用時,this的值是多少?你從點擊提交按鈕來調用它,但如果你嘗試它,它甚至不會是那個按鈕。作爲解決方案,你可以劃分'if'分爲兩個IFS:'IF cf_name問題,那麼$( '#cf_name')的兄弟姐妹( 'calc_error ')文本(' 必要'); 。如果cf_email問題,那麼$( '#cf_email')的兄弟姐妹( 'calc_error ')文本(' 必要');' –
我試過了。它沒有工作。 https://jsfiddle.net/vhmja20b/ – input
你的小提琴在行上的if條件中有$('#cf_name')。val'而不是$('#cf_name')。val()'(缺少括號) 7. –