Привет, У меня проблемы с этой функцией JS. Я пытаюсь передать переменную String и элемент html в JS-функцию, таким образом, я могу изменить значение другого элемента.
JS
function resetSequence(biz_hrs,form){
var employees= [
{
"esc_hrs":"B"
"esc_resp":5004
"maximun":4
"minimun":1
}
{
"esc_hrs":"B"
"esc_resp":5005
"maximun":4
"minimun":1
}
{
"esc_hrs":"B"
"esc_resp":5006
"maximun":2
"minimun":1
}
{
"esc_hrs":"B"
"esc_resp":5007
"maximun":0
"minimun":0
}
{
"esc_hrs":"B"
"esc_resp":5054
"maximun":3
"minimun":1
},
];
for(var i = 0; i< employees.length; i++){
if(biz_hrs === employees[i].esc_hrs && form.value === employees[i].esc_resp ){
var f = document.escform;
f.sequence.max=employees[i].maximun;
f.sequence.val=employees[i].minimun;
}
}
HTML
<select id="p_escalation_resp_i" name="p_escalation_resp_i" class="validate[required]" onChange="resetSequence('B',this)">
<option value="5004">Database</option>
<option value="5005" selected >Application</option>
<option value="5006">Network Connectivity</option>
<option value="5007">Operating System Hardware</option>
<option value="5054">TEST</option>
</select>
<input type="number" name="p_escalation_sequence_i" id="sequence" value="1" step="1" min="0" max="" selected />
мой вопрос в том, хорош ли параметр Char B и если для cicle тоже хорошо
Ваш вопрос не очень ясен, но я могу сделать вывод, что вы хотите изменить максимальное и минимальное значение вашего ввода последовательности, верно?
Состояние:
if(biz_hrs === employees[i].esc_hrs && form.value === employees[i].esc_resp ){
Всегда возвращайте false, потому что form.value
- это String, а employees[i].esc_resp
- целое число.
Затем попробуйте employees[i].esc_resp
значения employees[i].esc_resp
в определении вашего массива:
var employees= [
{
"esc_hrs":"B",
"esc_resp":"5004",
"maximun":4,
"minimun":1
},
{
"esc_hrs":"B"
"esc_resp":"5005"
"maximun":4
"minimun":1
},
{
"esc_hrs":"B",
"esc_resp":"5006",
"maximun":2,
"minimun":1
},
{
"esc_hrs":"B",
"esc_resp":"5007",
"maximun":0,
"minimun":0
},
{
"esc_hrs":"B",
"esc_resp":"5054",
"maximun":3,
"minimun":1
}
];
Обратите внимание на знаки запятой (,) и кавычки ("").
Полный код, который работает для меня:
<html>
<head></head>
<body>
<select id="p_escalation_resp_i" name="p_escalation_resp_i" class="validate[required]" onChange="resetSequence('B',this);">
<option value="5004">Database</option>
<option value="5005" selected >Application</option>
<option value="5006">Network Connectivity</option>
<option value="5007">Operating System Hardware</option>
<option value="5054">TEST</option>
</select>
<input type="number" name="p_escalation_sequence_i" id="sequence" value="1" step="1" min="0" max="" selected />
<script>
function resetSequence(biz_hrs,form){
var employees= [
{
"esc_hrs":"B",
"esc_resp":"5004",
"maximun":4,
"minimun":1
},
{
"esc_hrs":"B",
"esc_resp":"5005",
"maximun":4,
"minimun":1
},
{
"esc_hrs":"B",
"esc_resp":"5006",
"maximun":2,
"minimun":1
},
{
"esc_hrs":"B",
"esc_resp":"5007",
"maximun":0,
"minimun":0
},
{
"esc_hrs":"B",
"esc_resp":"5054",
"maximun":3,
"minimun":1
}
];
for(var i = 0; i< employees.length; i++){
if(biz_hrs === employees[i].esc_hrs && form.value === employees[i].esc_resp ){
var f = document.getElementById("sequence");
f.max=employees[i].maximun;
f.val=employees[i].minimun;
break;
}
}
}
</script>
</body>
</html>
'B'
как обычно!