我有一个表格,其中两个选项是相关的。 从第一个值中选择一个值后,将触发ajax调用以恢复第二个值。 我使用此表单来插入和编辑数据。 第一种情况都很顺利。 相反,编辑不合作,因为当我尝试设置第二个选择的选定值时,操作不会显示任何内容。 这是代码:
HTML
<select class="inputtext" id="category" name="category" onchange="loadsub(); return false;">
<option value="0"> -- </option>
<?php code to load the values ?>
</select>
<br />
<strong>Subcategory</strong>
<select class="inputtext" id="subcategory" name="subcategory">
<option value="0"> -- </option>
</select>
AJAX
function open(id, edit) {
$('#prod').css("display", "block");
request= 2;
$.ajax({
type: "POST",
dataType: "json",
url: "ajax/prod.php",
data: {
id: id,
richiesta: request
},
async: true,
success : function(data) {
var i = 0;
var tmp = '';
if (data) {
while(i<data.length) {
$('#category option[value="'+data[0]['categoria']+'"]').attr('selected', 'selected');
loadsub();
subcat= data[0]['subcategory'];
if (edit == 1) {
$('#categoria').attr("disabled", true);
$('#sottocategoria').attr("disabled", true);
}
i++;
}
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
//alert("Status: " + textStatus);
//alert("Error: " + errorThrown);
},
complete: function () {
$('#subcategory option[value="' + subcat + '"]').attr('selected', 'selected');
}
});
}
答案 0 :(得分:0)
您应该使用$.fn.val(value)
来估值并将其移至成功回调方法
success : function(data) {
//Your code
if(subcat){
$('#subcategory').val(subcat);
}
},
我建议您开始使用$.fn.prop()
$.fn.attr()
的.prop() vs .attr()来设置属性。好的阅读https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SubQueries
设置disabled
使用
$('#categoria').prop("disabled", true); //true to disable or false to enable
答案 1 :(得分:0)
请勿使用select标签显示ajax视图使用div或其他标记。因为已经选择了ajax页面中使用的标签
像你的例子
<select class="input text" id="category" name="category" on change="load sub(); return false;">
<option value="0"> -- </option>
<? code to load the values ?>
</select>
<strong>Subcategory</strong>
<div class="input text" id="subcategory" >
here is your ajax call
</div>