在继续提问之前,我想与大家分享一个HTML
<form name="m_domain" action="domains.php#searchdomain" method="post">
<table>
<tr>
<td>
Enter search name
<input type="text" name="search_domain" id="search_domain"/>
</td>
<td>
<input type="submit" value="search" name="submit_search"
id="submit_search"/>
</td>
</tr>
<tr>
<td>
Enter replace name
<input type="text" name="replace_domain" id="replace_domain"/>
</td>
<td>
<input type="submit" value="replace" name="submit_replace"
id="submit_replace" onclick="return validate()"/>
</td>
</tr>
</table>
</form>
现在出现了实际问题..
这一行
<input type="button" value="replace" name="submit_replace"
id="submit_replace" onclick="return validate()"/>
单击按钮时,会发生验证,但是当我们关注文本框id="replace_domain"
并且我们单击回车时,验证不会发生(情况很简单,验证是on on on而不是onsubmit。现在我无法将其更改为onsubmit,因为这样做有很多问题)
现在问题来了。
我尝试做的是,我试图通过在文本框id="replace_domain"
的keyup方法上绑定一个函数来检查是否按下了输入。
$('#replace_domain').bind('keyup', function(e)
{
if (e.keyCode === 13)
{
e.preventDefault();
return false;
}
});
这样可以正常工作,但问题是,因为还有一个文本框和一个提交按钮,所以每当我按Enter键时,表单都会提交
所以我想限制提交这样的事情。
如果当前焦点位于文本框#replace_domain
并且按下了输入,则表单将不会被提交并且将调用验证函数。
如果当前焦点位于文本框#search_domain
并按下了输入,那么表单将被提交并且不会调用验证。
我怎样才能实现这个目标?
EDIT
我使用以下代码来解决问题,并且它可以部分运行,但它无法停止表单提交
$(document).bind('keyup', function(e)
{
if (e.keyCode === 13)
{
if($('#replace_domain').is(':focus'))
{
alert("focus was on replace");
e.preventDefault(); // still it refreshes the page
return false; // still it refreshes the page
}
}
});
答案 0 :(得分:0)
您需要将两个文本框都绑定到id
。
$('#replace_domain','#search_domain').bind('keyup', function(e)
{
if (e.keyCode === 13)
{
e.preventDefault();
return false;
}
});
答案 1 :(得分:0)
写下这段代码:
if(e.keyCode==13 && $('#textboxID').is(":focus"){
--code------
}
这将解决您的问题