У меня есть эта функция JavaScript, которая прекрасно работает, но я хочу изменить ее, чтобы она принимала переданный массив и использовала цикл в функции для доступа к каждому элементу в массиве.
В настоящее время функцияпередаваемые аргументы отдельно в виде строк.(input1, input2, input3)
.Это не практично, потому что я использую эту функцию на многих страницах, и некоторые страницы могут иметь более или менее входные данные.Это будет динамично, если я смогу пропустить массив и цикл через него и получить ту же самую конечную функциональность.
Что он делает, так это скрывает поля ввода, если они не выбраны в раскрывающемся списке.Если я выберу PO
из выпадающего списка, оно отобразит это поле ввода для ввода номера PO.
Функция инициируется в событии onChange
выбора.
Здесьмой оригинальный код.
Функция JavaSCript:
// javascript
function changetextbox(input1, input2, input3) {
var sel = document.getElementById("sel");
var in1 = document.getElementById(input1);
var in2 = document.getElementById(input2);
var in3 = document.getElementById(input3);
var today = new Date();
var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
if (sel.value === "All") {
in1.style.display='none';
in2.style.display='none';
in3.style.display='none';
in3.value = "";
} else if (sel.value === input1) {
in1.style.display='inline';
in2.style.display='none';
in3.style.display='none';
in3.value = "";
} else if (sel.value === input2) {
in1.style.display='none';
in2.style.display='inline';
in3.style.display='none';
in3.value = "";
} else if (sel.value === input3) {
in1.style.display='none';
in2.style.display='none';
in3.style.display='inline';
in3.value = date;
}
}
Выберите выпадающую форму:
<form method="post">
<input type="text" id="PO" name="PO" value="" placeholder="Enter PO" style="display:none">
<input type="text" id="OrderID" name="OrderID" value="" placeholder="Enter OrderID" style="display:none">
<input type="date" id="CreatedTime" name="CreatedTime" value="" max="2018-11-30" style="display:none">
<select id="sel" name="sel" onChange="changetextbox('PO, OrderID, CreatedTime');">
<option value="All">All</option>
<option value="PO">PO</option>
<option value="OrderID">OrderID</option>
<option value="CreatedTime">Date</option>
</select>
<input type="submit" value="Search">
</form>
Это мойниже приведен новый код, который еще не работает, потому что я не уверен, что еще мне нужно с ним сделать.
JavaScript:
function changetextbox(input) {
var today = new Date();
var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
var sel = document.getElementById("sel");
var len = input.length;
var inp;
for (i=0; i<len; ++i) {
if (i in input) {
inp[i] = document.getElementById(input);
if (sel.value === "All") {
inp[i].style.display='none';
} else {
inp[i].style.display='inline';
}
}
}
}
Выберите выпадающую форму:
<form method="post">
<input type="text" id="PO" name="PO" value="" placeholder="Enter PO" style="display:none">
<input type="text" id="OrderID" name="OrderID" value="" placeholder="Enter OrderID" style="display:none">
<input type="date" id="CreatedTime" name="CreatedTime" value="" max="2018-11-30" style="display:none">
<select id="sel" name="sel" onChange="changetextbox(dropdown);">
<option value="All">All</option>
<option value="PO">PO</option>
<option value="OrderID">OrderID</option>
<option value="CreatedTime">Date</option>
</select>
<input type="submit" value="Search">
</form>
Массив JavaScript, который передается в функцию
Переменная JavaScript:
<script>
var dropdown = ["PO","OrderID","CreatedTime"];
</script>