我有婚姻状况。它是一个弹簧形式选择(下拉),并且选项是根据前几页中的选择动态生成的。
我陷入了一种特殊情况,即表格选择在下拉菜单中只有一个选项(Say配偶)。如果用户选择唯一可用且选定的下拉选项(目的是更改),我需要显示一条消息,表明它无法在此更改,并且应在之前的页面中进行更改。
我搜索了很多,但在jquery中无法找到表格选择选择或点击事件? Jquery .on('更改' ....)不能满足我的目的,因为下拉列表中只有一个值,并且不会触发更改事件。
以下是渲染下拉列表选项和选项的代码: -
<!-- Marital Status -->
<html:condition name="marital_status" screen="drivers" model="${SESSION_INFO}">
<div class="formrow">
<div class="formlables padding-top-2">
<label><spring:message code="msg.drivers.marital_status" text="Marital Status" /></label>
</div>
<div class="formhelp padding-top-2">
<html:help enabled="true" model="${SESSION_INFO}" helpMsgKey="msgKeyMaritalStatus" />
</div>
<div id="box-marital_status" class="forminput">
<shtml:select id="maritalStatus" items="${ITEMS_MARITAL_STATUS}" path="driverInfo.maritalStatus"
cssclass="select fixed_width"
style="margin-bottom: 20px; width: 300px;"
tabindex="7"
/>
答案 0 :(得分:0)
我通过将表单select包装在div中并将其绑定到click事件来完成解决方法。
$('#box-marital_status').click(function() {
// do something
});
<div id="box-marital_status" class="forminput">
<shtml:select id="maritalStatus" items="${MARITAL_STATUS}" path="driverInfo.maritalStatus"
cssclass="select fixed_width"
style="margin-bottom: 20px; width: 300px;"
tabindex="7"
/>
答案 1 :(得分:0)
绝对是一个更好的解决方案并且效果很好。
$('#box-marital_status').mousedown(function() {
if ('2' === $('#driverNum').val()) {
var msPrincipal = '${MA_PRINCIPAL_MARITAL_STATUS}';
var msCurrent = $('#maritalStatus').data('prev');
if (_.contains([ 'M', 'Q' ], msPrincipal) && _.contains([ 'M', 'Q' ], msCurrent)) {
$('#dialog_mstatus_change').dialog('open');
}
}
});
$('#box-marital_status').keydown(function(event) {
if ('40' == event.keyCode && '2' === $('#driverNum').val()) {
var msPrincipal = '${MA_PRINCIPAL_MARITAL_STATUS}';
var msCurrent = $('#maritalStatus').data('prev');
if (_.contains([ 'M', 'Q' ], msPrincipal) && _.contains([ 'M', 'Q' ], msCurrent)) {
$('#dialog_mstatus_change').dialog('open');
}
}
});