【发布时间】:2017-01-11 15:11:15
【问题描述】:
在每次页面加载时,我都会预先选择当前选项。这是在上一次向服务器发出请求时选择的项目。发出的请求会导致显示在 div 上的消息。一旦用户在 select 上选择了另一个选项,就会调用一个函数来加载选项的详细信息。我还想在这个时候隐藏显示上一个请求结果的 div。问题是即使在页面加载时也会调用隐藏警报 div 的功能。这是因为在页面加载时,如果有先前的请求,我会更改选择的当前选项。这会触发 onchange 事件,这是我计划放置 hideAlert() 函数的地方。如果有先前的请求,下面是预选选项的代码。预先选择的值在页面上作为隐藏值。
if( $('#debtor_select_edit').length){
if( $('#pres_debtor').length ){//checking whether pres_debtor exists
var deb = $('#pres_debtor').val();
if($('#debtor_select_edit option').filter(function(){ return $(this).val() == deb; }).length){
// found the category. Set it as current
$('#debtor_select_edit').val(deb).change();
fetch_debtor_details();
}
}
else{
//select first debtor by default
$('#debtor_select_edit option:first').attr('selected', 'selected');
fetch_debtor_details();
}
}
选择本身如下所示:
<select id="debtor_select_edit" onchange="hideEditAlert();fetch_debtor_details()" class="form-control">
@foreach($debtors as $debtor)
<option value="{{$debtor->id}}">{{$debtor->fullName}}</option>
@endforeach
</select>
hideEditAlert() 函数如下所示:
function hideEditAlert(){
$('#edit_alert_area').hide();
}
【问题讨论】:
-
如果您打开浏览器的控制台(通常在您的页面上单击鼠标右键,选择“检查元素”,然后选择“控制台”),应该会有一些关于正在发生的事情的信息。你的代码看起来不错
标签: javascript php jquery html laravel