0

このような2つのチェックボックスがあります。

<input id="isGenericPassword" name="isGenericPassword"
       onclick="IsGenericOrUnique(this.id);" type="checkbox" value="true" />
<input name="isGenericPassword" type="hidden" value="false" />
<input checked="checked" id="isUniquePassword" name="isUniquePassword"
       onclick="IsGenericOrUnique(this.id);" type="checkbox" value="true" />
<input name="isUniquePassword" type="hidden" value="false" />
<input id="UniquePassword" name="UniquePassword" style="display:none"
       type="text" value="" />

document.readyで、私は持っています

 $('#isUniquePassword').is(':checked')
     ? $("#UniquePassword").show()
     : $("#UniquePassword").hide();

チェックボックスがオンの場合、関連するテキストボックスが表示されるようにします。

isUniquePasswordチェックボックスをクリックするとテキストボックスUniquePasswordが非表示になります

$("#isUniquePassword").click(function () {
    $("#UniquePassword").toggle(this.checked);
    if ($("#isUniquePassword").is(':checked')) {
        // unique password gets focus only if related checkbox is checked
        $("#UniquePassword").focus();
    }
});

ユーザーが何も入力せずに離れようとしたときにダイアログを表示する

 $("#UniquePassword").blur(function () {
     if ($("#isUniquePassword").is(':checked') &&
         $("#UniquePassword").val() == '')
     {
         $("#dialog-RecipientEmail-error").dialog("open");                        
     }
 });

そして、そのダイアログの[OK]ボタンをクリックして、値が入力されるようにそのテキストボックスにフォーカスを再度設定します。

  $("#dialog-RecipientEmail-error").dialog({
      autoOpen: false,
      resizeable: false,
      width: 300,
      modal: true,
      buttons: {
          "OK": function () {
              $(this).dialog("close");
              $("#UniquePassword").focus();
          }
      }
  });

いいえ、isGenericPasswordがオンになっている場合、またはisUniquePasswordがオフになっている場合は、エラーダイアログが表示されます。

4

1 に答える 1

0

$("#UniquePassword").focus(); フォーカスイベントにバインドされたアクションをトリガーするのではなく、フィールドにフォーカスしません。フィールドにフォーカスするには、HTML 要素のハンドルを取得する必要があります

$("#UniquePassword").get(0).focus();

それはうまくいくはずです。

于 2013-02-13T12:39:21.737 に答える