Spring表单选择使用Jquery / Javascript选择/单击事件

时间:2014-08-12 01:56:47

标签: java javascript jquery spring forms

我有婚姻状况。它是一个弹簧形式选择(下拉),并且选项是根据前几页中的选择动态生成的。

我陷入了一种特殊情况,即表格选择在下拉菜单中只有一个选项(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"
    />

2 个答案:

答案 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');
                }
            }
        });