1
我一直在這個任務的一整天,似乎無法看到我要去哪裏錯了。觀看了一些YouTube視頻並搜索了幾天,緊隨其後,但仍然缺少一些東西。驗證聯繫我們表單使用Javascript,下拉菜單不返回false
我應該使用Javascript來驗證聯繫我們表單。下面是說明:
- 「名稱」,要麼「電話號碼」或「電子郵件」必須填寫或警報彈出(我有這個迄今爲止工作)
- 如果「其他」是從下拉菜單中選擇,用戶必須填寫「附加信息」文本區域,或警告將顯示
- 用戶必須檢查的日子至少一個與其聯繫,或警報
function checkForm() {
var name = document.getElementById("nameInput").value;
var email = document.getElementById("emailInput").value;
var phone = document.getElementById("phoneInput").value;
var inquirySelect = document.getElementById("dropdown").value;
var addInfoBox = document.getElementById("textInput").value;
if (name == "") {
alert("Name is required");
return false;
} else if (email == "" && phone == "") {
alert("Please provide your email address or a phone number");
return false;
} else if (inquirySelect == "Other" && addInfoBox == "") {
alert("Please add additional info");
return false;
}
}
<form name="contactForm" action="submission.html" method="POST" onsubmit="return checkForm()">
<table id="form">
<tr>
<td id="question">Name:</td>
<td id="answer">
<input type="text" name="Name" id="nameInput">
</td>
<td id="question"></td>
</tr>
<tr>
<td id="question">Email:</td>
<td id="answer">
<input type="text" name="Email" id="emailInput">
</td>
</tr>
<tr>
<td id="question">Phone:</td>
<td id="answer">
<input type="text" name="phoneNumber" id="phoneInput">
</td>
</tr>
<tr>
<td id="question">Reason for Inquiry:</td>
<td id="answer">
<select name="reason" id="dropdown">
<option value="Catering">Catering</option>
<option value="Private Party">Private Party</option>
<option value="Feedback">Feedback</option>
<option value="Other">Other</option>
</select>
</td>
</tr>
<tr>
<td id="question">Additional Information:</td>
<td id="answer">
<textarea name="additionalInfo" id="textInput">
</textarea>
</td>
</tr>
<tr>
<td id="question">Have you been to the restaurant?:</td>
<td id="answer">
<input type="radio" name="answer" value="NO" checked>No
<input type="radio" name="answer" value="YES">Yes</td>
</tr>
<tr>
<td id="question">Best days to contact you:</td>
<td id="answer">
<input type="checkbox" name="check" value="1">M
<input type="checkbox" name="check" value="2">T
<input type="checkbox" name="check" value="3">W
<input type="checkbox" name="check" value="4">Th
<input type="checkbox" name="check" value="5">F</td>
</tr>
<tr>
<td></td>
<td id="answer">
<input type="submit" value="Send Request">
</td>
</tr>
</table>
</form>
到目前爲止,我能夠獲得第1步的工作。但是,我似乎無法讓第2步返回false,它將始終通過。
我還沒有開始工作的最後一步,但我知道我會使用for循環來檢查選中的值並返回false,如果沒有選中。希望我不會在這裏回到那裏。我感謝幫助在此,感謝標籤文本區域之間
我沒有看到一個空的空間... – eric
很好的抓住@ehsan。如果在HTML處有一個換行符,則該值不爲null,所以這就是警報沒有顯示的原因; 'document.getElementById(「textInput」)。value - > 「\t \t \t \t \t」' – yuriy636
哦結束標記之前的空白空間。有用!謝謝! – eric