我在ajax生成的表单中有一个下拉菜单。
HTML:
<select id="MedicationMonth_row18" name="MedicationMonth[]" style="width: 30px;">
<option value="">--Select--</option>
<option value="01">Jan</option>
<option value="02">Feb</option>
<option value="03">Mar</option>
<option value="04">Apr</option>
<option value="05">May</option>
<option value="06">Jun</option>
<option value="07">Jul</option>
<option value="08">Aug</option>
<option value="09">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
我正在尝试根据隐藏div中的输入值添加选定值。
HTML
<td align="left" style="display: none;">
<input id="MedicationMonthValue_row18" type="text" value="03" name="MedicationMonthValue[]" style="width:30px">
</td>
我用来尝试创建所选选项的JS代码如下:
var medval = $('#MedicationMonthValue_'+id).val();
$('#MedicationMonth_'+id).val(medval);
还尝试了以下内容:
$('#MedicationMonth_'+id).change(function() { $('#MedicationMonthValue_'+id).val( $(this).val() ); });`
当我提醒medval时,我从隐藏的输入字段中获取值。
我几周来一直在努力解决这个问题。任何指针都会很棒!谢谢!
编辑:以下是我正在使用的更完整的代码,可能指出堆栈问题。
$('.trSelected', grid).each(function(){
var id = $(this).attr('id');
for(i=0;i < ($(this).children().length); i++){
if (i == 0) {
var name = $("thead tr").children().eq(i).attr("abbr");
var width = $(this).children().eq(i).children().css('width');
var old_value = $(this).children().eq(i).text();
var new_value = $(this).children().eq(i).html('<div style="text-align: center; width: 40px;"><input type="hidden" name="'+name+'[]" value="'+old_value+'"/>'+old_value+'</div>');
}
else {
var name = $("thead tr").children().eq(i).attr("abbr");
var old_value = $(this).children().eq(i).text();
var width = $(this).children().eq(i).children().css('width');
if (name == 'MedicationMonth') {
var medval = $('#MedicationMonthValue_'+id).val();
$('#MedicationMonth_'+id).val(medval);
var new_value = $(this).children().eq(i).html('<select id="MedicationMonth_'+id+'" name="MedicationMonth[]"><option value="">--Select--</option><option value="01">Jan</option><option value="02">Feb</option><option value="03">Mar</option><option value="04">Apr</option><option value="05">May</option><option value="06">Jun</option><option value="07">Jul</option><option value="08">Aug</option><option value="09">Sep</option><option value="10">Oct</option><option value="11">Nov</option><option value="12">Dec</option></select>');
}
else {
var old_value = $(this).children().eq(i).text();
var new_value = $(this).children().eq(i).html('<input style="width:'+width+'" type="text" name="'+name+'[]" id="'+name+'_'+id+'" value="'+old_value+'"/>');
}
}
}
$(this).removeClass("trSelected");
$(this).addClass("trEdited");
$("div.fbutton").eq(2).css('visibility', 'hidden');
$("div.fbutton").eq(2).css('width', '0px');
$("div.fbutton").eq(3).css('visibility', 'visible');
$("div.fbutton").eq(3).css('width', 'auto');
$("div.fbutton").eq(4).css('visibility', 'visible');
$("div.fbutton").eq(4).css('width', 'auto');
});
答案 0 :(得分:0)
此代码正常运行:
var medval = $('#MedicationMonthValue_'+id).val();
$('#MedicationMonth_'+id).val(medval);
您无法看到它,因为您的下拉列表中的宽度很小。删除选择的宽度。
<select id="MedicationMonth_row18" name="MedicationMonth[]">
答案 1 :(得分:0)
示例演示:http://jsfiddle.net/WREdT/1
$(function(){
$('#MedicationMonth_row18').val($('#MedicationMonthValue_row18').val());
});
答案 2 :(得分:-1)
任何元素的ID都应始终在页面上单独显示。更改隐藏输入元素或选择元素的ID。
试试这个
<input id="hid_MedicationMonthValue_row18" type="text" value="03" name="MedicationMonthValue[]" style="width:30px">
var medval = $('#MedicationMonthValue_'+id).val();
$('#hid_MedicationMonth_'+id).val(medval);