我正在使用基于选择元素值更改的 ajax 表单,将 ajax 请求发送到服务器,然后返回一个 json 字符串作为响应。我基于这个 json 字符串构建了第二种形式。问题是我想根据第二个选择元素值的变化(通过javascript生成的那个)制作第三个选择元素。在这种情况下,当我想使用更改事件时,它不起作用:
到目前为止我的javascript代码:
jQuery("#make").on('change',function(){
var value = jQuery(this).val();
if(value != 0)
{
jQuery.getJSON("<?php echo site_url('ajax/get/models'); ?>",
{makeId:value},
function(data){
if(data != "false")
{
var modelsSelect = document.createElement('select');
modelsSelect.setAttribute('name','model');
modelsSelect.setAttribute('id','model');
var modelOption = document.createElement('option');
modelOption.setAttribute('value',0);
modelOption.appendChild(document.createTextNode("sample text"));
modelsSelect.appendChild(modelOption);
jQuery.each(data, function(index, item) {
var modelOption = document.createElement('option');
modelOption.setAttribute('value',item.id);
modelOption.appendChild(document.createTextNode(item.model.toString()));
modelsSelect.appendChild(modelOption);
});
jQuery("#model").replaceWith(modelsSelect);
return false;
}
else
{
return false;
}
}
);
}
else
{
var modelsSelect = document.createElement('select');
modelsSelect.setAttribute('name','model');
modelsSelect.setAttribute('id','model');
modelsSelect.setAttribute('disabled','disabled');
var modelOption = document.createElement('option');
modelOption.setAttribute('value',0);
modelOption.appendChild(document.createTextNode("sample text"));
modelsSelect.appendChild(modelOption);
jQuery("#model").replaceWith(modelsSelect);
return false;
}
});
jQuery("#model").on('change',function(){
alert("change");// THIS DOES NOT WORK
return false;
});