我在ajax生成的表單中有一個下拉菜單。基於隱藏Div輸入值的選定選項
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');
});
當用於設置'select'值的代碼稱爲?由於它是一個Ajax生成的表單,因此您需要確保**表單生成後的代碼**,即回調函數中。 –
id是否包含'「row」+ index'? –
它在頁面內與ajax相關的代碼中被調用。好的,你能提供一個回調函數的例子嗎? 是的,每個id包含行的行+ attr索引。上面提供的例子... row18 –