我想創建通過在下拉列表中選擇的值確定的字段的動態量。由於這將在客戶端執行,因此必須通過Javascript完成。我知道我可以通過創建所有前手的字段,然後簡單地使用CSS來顯示/隱藏每一個達到這種效果,但是這是一個很多重複的代碼。的Javascript動態條件句
通過試驗和錯誤我有這樣的工作,但它或者刪除我的價值,當更改我的dropdownlist或添加太多的箱子,如果我沒有它刪除之前創建新的箱子。
有一個簡單的方法來完成我想要做的,而對下拉列表的變化失去輸入的值?我在做什麼的嘗試如下。
function doAThing() {
var attemptsValue = parseInt(document.forms['ProgramApplicationForm'].elements['VerificationPrimaryHomePhoneAttemptsDropDownList'].value);
if (attemptsValue == null) {
document.getElementById('VerificationPrimaryHomePhoneAttemptDate').innerHTML = null;
} else if (document.getElementById('VerificationPrimaryHomePhoneAttemptDate').innerHTML == null) {
for (counter = 1; counter < attemptsValue + 1; counter++) {
document.getElementById('VerificationPrimaryHomePhoneAttemptDate').innerHTML +=
'<label for="VerificationPrimaryHomePhoneAttemptDate' + counter + '">Attempt ' + counter + ' Date:</label><input type="text" name="VerificationPrimaryHomePhoneAttemptDate' + counter + '" value="" id="p-dod-date-picker" maxlength="10" class="size-ten" placeholder="yyyy-mm-dd" title="yyyy-mm-dd" pattern="\d{4}-\d{2}-\d{2}"/>';
}
} else {
document.getElementById('VerificationPrimaryHomePhoneAttemptDate').innerHTML = null;
for (counter = 1; counter < attemptsValue + 1; counter++) {
document.getElementById('VerificationPrimaryHomePhoneAttemptDate').innerHTML +=
'<label for="VerificationPrimaryHomePhoneAttemptDate' + counter + '">Attempt ' + counter + ' Date:</label><input type="text" name="VerificationPrimaryHomePhoneAttemptDate' + counter + '" value="" id="p-dod-date-picker" maxlength="10" class="size-ten" placeholder="yyyy-mm-dd" title="yyyy-mm-dd" pattern="\d{4}-\d{2}-\d{2}"/>';
}
}
}
的標籤需要「爲」可以匹配一些輸入要素,對吧。 – EricG 2012-07-19 20:44:31
這是完美的,謝謝! – bmanhard 2012-07-19 20:45:09
@EricG:否。如果將'input'放置在'label'內,則不需要'for'屬性。查看[HTML規範](http://www.w3.org/TR/html401/interact/forms.html#h-17.9.1)。 – Zeta 2012-07-19 20:45:12