Javascript 使用jquery在文本框上设置焦点

Javascript 使用jquery在文本框上设置焦点,javascript,jquery,Javascript,Jquery,我有两个这样的复选框: <input id="isGenericPassword" name="isGenericPassword" onclick="IsGenericOrUnique(this.id);" type="checkbox" value="true" /> <input name="isGenericPassword" type="hidden" value="false" /> <input checked="checked" id=

我有两个这样的复选框:

<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="" />
如果选中复选框,则相关文本框可见

单击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,那么我应该得到错误对话框;不会聚焦该字段,而是会触发与聚焦事件绑定的操作。要聚焦字段,需要获取HTML元素的句柄

$(“#唯一密码”).get(0.focus()


这应该行得通

我希望只有当用户取消选中isUniquePassword或尝试检查isgenericPassword时,UniquePassword才会获得焦点,然后模糊事件不会触发。@Mahbub:根据对
的调用,focus()
相当于
.trigger(“focus”)
,这意味着焦点是在HTML元素上触发的。另外,文档还说明:要运行元素的焦点事件处理程序而不将焦点设置为元素,请使用
.triggerHandler(“focus”)
而不是
.focus()
。哦,我没有注意到Doc中的更新。如果您一直在关注jQuery的时间更长,它以前可能是这样的:)问题/问题是什么?您能把您的问题放到JSFIDLE中吗?捐款更容易、更快。
  $("#dialog-RecipientEmail-error").dialog({
      autoOpen: false,
      resizeable: false,
      width: 300,
      modal: true,
      buttons: {
          "OK": function () {
              $(this).dialog("close");
              $("#UniquePassword").focus();
          }
      }
  });