【发布时间】:2013-03-16 00:26:14
【问题描述】:
我有一个 jQuery 对话框,希望将其中一个按钮设置为外观和行为类似于默认按钮,同时仍然能够将注意力集中在表单元素上。我能够使用下面的代码成功地做到这一点,但我遇到的问题是当点击默认按钮时(而不是在点击输入时),我应用的样式被删除。单击按钮后,我尝试重新添加样式,但没有用。有什么想法吗?
open: function ()
{
$('#FieldName').focus();
$(this).parent().find('button:nth-child(1)').addClass('ui-state-focus');
$(this).keydown(function (event)
{
if (event.keyCode == 13)
{
$(this).parent().find('button:nth-child(1)').trigger('click');
}
});
}
更新: 这是一个小提琴:http://jsfiddle.net/98v6Q/2/
要在使用 fiddle 代码时查看问题,请运行 fiddle,然后单击对话框或表单中的任意位置。您会注意到按钮的默认状态仍然存在。单击“创建帐户”按钮,然后单击表单内部或外部的任意位置,您会注意到按钮状态发生了变化,但它不应该发生变化。
【问题讨论】:
-
这将有助于查看相关的 HTML,可能还有问题的 jsfiddle。
-
我更新了我的问题并包含了一个小提琴。
-
您到底想完成什么?你想让它看起来总是专注吗?在单击“创建帐户”按钮然后失去焦点后,我没有看到它看起来有任何不同。如果将鼠标悬停在 Cancel 按钮上,它仍然具有较深的蓝色背景色。
-
@RubenInfante - 在我上面的更新说明中,我说过您需要在对话框中单击关闭对话框才能看到焦点变化。我无法包含我在小提琴中使用的 jQuery 验证代码。一旦验证发生,对话框会自动将焦点切换到第一个无效字段,这会导致按钮恢复到未获得焦点的状态。
标签: jquery button dialog default