通过单击更新链接,根据从Ajax请求检索到数据库的数据,从下拉列表中选择值,当我在console.log时,我可以看到响应,我可以看到数据,并且我已成功地将其与drop进行比较 - 下拉列表,如果匹配,将选择其中一个选项值。
如果我点击“清除”按钮清除所选选项,它将首次运行。
但是,如果我再次点击更新链接到检索到的数据,我可以看到我在控制台时检索到数据。记录响应但没有从下拉列表中选择任何内容。
任何帮助 - 这是我下面的代码
<p>
<a href="javascript:;" class="updateCenter">Update</a>
</p>
<form method="post" action="controller/update" class="formInuts">
<select required="" name="semester_id" class="form-control semester">
<option value="">Pleas Select</option>
<option value="1">Semester 1</option>
<option value="2">Semester 2</option>
<option value="3">Semester 3</option>
</select>
<button type="submit" class="btn btn-primary saveCorCnt">SAve</button>
<button type="" class="btn btn-primary clearCorCnt">Clean</button>
</form>
// Update
$('.updateCenter').on('click', function(event) {
event.preventDefault();
// semester id
var corcnt_id = 1;
$.ajax({
url: url+'/findcorcnt',
type: 'POST',
dataType: 'JSON',
data: {
corcntid: corcnt_id
},
beforeSend: function() {
},
success: function(respond) {
// Data retrieved successfully
// first time and every time i click on update link
// Changing the current action to update
var formInuts = $('.formInuts').attr('action',url+'/updatecorcnt');
// Change save btn to update
var saveBtn = $('.saveCorCnt').text('update');
// Selecting the values from dropdowns semesters
$('.semester option').each(function(){
if (parseInt(this.value) == respond.semester_id) {
$(this).attr('selected', true);
}
});
});
$('.clearCorCnt').on('click', function(event) {
event.preventDefault();
$(':input','.formInuts')
.removeAttr('checked')
.removeAttr('selected')
.not(':button, :submit, :reset, :hidden, :radio, :checkbox')
.val('');
var saveBtn = $('.saveCorCnt').text('save');
});
答案 0 :(得分:1)
无需使用循环进行比较。试试如下。
$('.semester').val(respond.semester_id);