Javascript 我在第一次更改时得到结果,但在第二次更改时没有…需要设置原始下拉列表…如何设置?
在类型和类别更改时,部门应该是更改的。它只工作一次,但当我在不刷新的情况下更改类别和类型第二次时,它不工作。我不想第二次或更多时间刷新页面Javascript 我在第一次更改时得到结果,但在第二次更改时没有…需要设置原始下拉列表…如何设置?,javascript,jquery,ajax,Javascript,Jquery,Ajax,在类型和类别更改时,部门应该是更改的。它只工作一次,但当我在不刷新的情况下更改类别和类型第二次时,它不工作。我不想第二次或更多时间刷新页面 <select id="CATEGORY_ID"> <option value="21">desc</option> <option value="22">short</option> <option value="23">medium</option> <option
<select id="CATEGORY_ID">
<option value="21">desc</option>
<option value="22">short</option>
<option value="23">medium</option>
<option value="24">long</option>
</select>
<select class="bx-user-field-enum" name="UF_TYPE">
<option value="1">comp</option>
<option value="2">query</option>
<option value="3">fault</option>
</select>
<select name=UF_DEPT>
<option value="21">Volvo</option>
<option value="22">Saab</option>
<option value="23">Mercedes</option>
<option value="24">Audi</option>
</select>
}))
函数删除选项(msg){
var cars=document.getElementsByName(“UF_DEPT”)[0];
var val=JSON.parse(msg);
对于(var i=0;icars
在removeOptions
函数中不是一个数组或类似数组的对象。那么你想迭代什么?另外,我看不到ID为CATEGORY\u ID
的元素。那不应该是CATEGORY
吗?msg
看起来像什么?我认为你在第二个代码中有错误的选择器ock,这就是为什么ajax请求不会第二次触发。如果你为它创建一个提琴会很有帮助…@RajeshMaharjan-唯一的问题是..它第一次设置了cars[],我想在第二次重置为原始下拉列表..我也在第二次收到ajax响应..需要将部门下拉列表重置为原始
$('#CATEGORY_ID,[name=UF_TYPE]').on('change', function() {
var id = $('#CATEGORY_ID').val();
var select = $('.bx-user-field-enum').val();
if(id !=null && select !=null){
$.ajax({
type: "POST",
//dataType: 'json',
url:"ajax_dept.php",
data: {
select: select, id: id
},
success: function(msg) {
removeOptions(msg);
}
});
}
function removeOptions(msg) {
var cars = document.getElementsByName("UF_DEPT")[0];
var val = JSON.parse(msg);
for(var i=0; i<=cars.length; i++) {
var isFound = false;
for(var j=0;j<=i; j++) {
if(val[j] == cars[i].value) {
isFound=true;
//cars[i].style.color="red";
cars[i].style.display="block";
break;
}
}
if(!isFound) {
cars[i].style.display="none";
}
$('[name=UF_DEPT]').val(val[0]);
}
}