HTML表單的外觀:的Javascript - 檢查多個字段爲空不工作
<form action="search" id="searchForm" onsubmit="return validateSearch()">
<input type="text" name="byTitle" pattern="[a-zA-Z0-9]+" placeholder="Enter a word from title">
<input type="text" name="byAuthor" pattern="[a-zA-Z]+\s[a-zA-Z]+" placeholder="First-name Last-name"> <!-- pattern="\w+ \w+" -->
<input id="startDate" name="startDate" type="date">
<input id="endDate" name="endDate" type="date">
<input type="submit" name="submit" value="Submit">
</form>
Javscript驗證功能:
function validateSearch() {
var byTitle = document.getElementById('searchForm').byTitle.value;
// alert(byTitle);
var byAuthor = document.getElementById('searchForm').byAuthor.value;
// alert(byAuthor);
var startDate = document.getElementById('searchForm').startDate.value;
//alert(startDate);
var endDate = document.getElementById('searchForm').endDate.value;
//alert(endDate);
if(byTitle == byAuthor == startDate == endDate == ""){
alert("Enter at least one search parameter!");
return false;
}
}
現在,如果我把所有的表單字段爲空/空缺,按提交,應該彈出消息alert("Enter at least one search parameter!");
,但不是。想看看每個字段閱讀後插入的每個字段的值是什麼,alert
,它們都是相同的,爲空字符串/空白。那麼,爲什麼if condition
不會將它們視爲相同的空域?
謝謝,直到現在我還不知道'==='。 – Vladimir
您不必在此處使用'==='而不是'=='。沒有理由要確保這些值是字符串。此外,您從[我的答案](http://stackoverflow.com/a/21134955/1317805)拿來的塊的描述不正確。 「!」運算符不會評估值是否爲空,空字符串或0,它會將值轉換爲布爾值,然後返回相反值。 –
+1,永遠不會知道'!byTitle'也會檢查空字符串 – freefaller