如果在2文本框中的特定文本框上聚焦时按下输入,则会发出警报消息

时间:2015-01-16 07:55:14

标签: javascript jquery html

在继续提问之前,我想与大家分享一个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键时,表单都会提交

所以我想限制提交这样的事情。

  1. 如果当前焦点位于文本框#replace_domain并且按下了输入,则表单将不会被提交并且将调用验证函数。

  2. 如果当前焦点位于文本框#search_domain并按下了输入,那么表单将被提交并且不会调用验证。

  3. 我怎样才能实现这个目标?

    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
            }
        }
    });
    

2 个答案:

答案 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------
}

这将解决您的问题