javascript - 根据焦点获取两个提交按钮中任意一个的值

标签 javascript jquery html forms

我有一个带有两个提交按钮和两个文本框的 html 表单

这是表格

<form action="domains.php#searchdomain" method="post" name="m_domain"
      onsubmit = "return primalValidate()">
 <table class="dataTable" width="100%" border="0" cellspacing="0" cellpadding="5" id="" style="text-align:center; margin-top:0px; border-left:1px solid #ddd; border-right:1px solid #ddd; border-top:1px solid #ddd;">
          <tr>
            <td align="left" colspan="2"><div id="display_message" <?php echo $sstyle; ?>><?php echo $dis_msg; ?></div></td>
          </tr>
          <tr>
            <td align="left">Search Domain</td>
            <td align="left" style="display:none;" id="apply_text">Replace Selected Domains With</td>
          </tr>

          <tr>
            <td align="center"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td><input class="input_field" name="search_domain" id="search_domain" value="<?php echo $search_domain; ?>" type="text"></td>
                  <td>&nbsp;</td>
                  <td><input type="submit" class="btn blue_button" 
                    name="submit_domain_form" id="submit_search_button"
                  value="Search" /></td>
                </tr>
              </table></td>
            <td align="center"><table width="100%" border="0" cellspacing="0" cellpadding="0" id="apply_button" style="display:none;">
                <tr>
                  <td><input class="input_field" name="domain_name_url" id="domain_name_url" value="<?php echo $domain_name_url; ?>" type="text"></td>
                  <td>&nbsp;
                  <input name="domain_replace_id" id="domain_replace_id" 
                  value="" type="hidden">
                  <input name="domain_replace_link" id="domain_replace_link" 
                  value="" type="hidden">
                  </td>
                  <td><input type="submit" class="btn blue_button" 
                    name="submit_domain_form" id="submit_replace_button"
                  value="Apply" /></td>
                </tr>
              </table></td>
          </tr>
          <tr>
            <td align="center">
                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td><input type="checkbox" name="status_domain" id="status_domain" <?php if($status_domain){?> checked <?php } ?>>&nbsp;Include inactive campaigns in search.</td>
                      <td>&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                </table>
            </td>
            <td align="center">&nbsp;</td>
          </tr>

        </table>     
</form>

现在我正在尝试制作一个像这样的通用验证表单......

function primalValidate()
{
    var action = document.forms["m_domain"]["submit_domain_form"].value;
    if(action=="Search")
    {
        //validation condition 1;
        //return false;
    }
    else if(action=="Apply")
    {
        //validation condition 2;
        //return false;
    }

}

但问题是验证条件都不起作用......

当我试图提醒行动的值(value)时,即

alert(action); 我收到空白警报

这是表单中的两个提交按钮

<input type="submit" class="btn blue_button" 
                        name="submit_domain_form" id="submit_search_button"
                      value="Search" />

<input type="submit" class="btn blue_button" 
                        name="submit_domain_form" id="submit_replace_button"
                      value="Apply" />

最佳答案

试试这个,

var action = $("input[type=submit]:focus").val();;

Demo

如果您想通过提交按钮名称来获得它,请尝试,

var action = $("input[name=submit_domain_form]:focus").val();

尝试一下 here

此外,如果您使用回车键提交,则以上都会警告未定义。为此,您需要根据您的 HTML 设计进行一些逻辑,例如,

if(action==undefined){
    action=$('*:focus').closest('table').find(':submit').val();
    // you can use name=submit_domain_form instead of :submit as used in second updated answer
}

参见working demo

关于javascript - 根据焦点获取两个提交按钮中任意一个的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28018743/

相关文章:

javascript - 当事件处理程序附加到父项时,防止在某个子项之后单击

javascript - JS添加css类时如何应用css代码样式

javascript - 为什么视频不播放,第一次播放时动态更改它不会播放

javascript - 隐藏/显示 "back"上的元素(移动设备)

html - 使用 AlphaImageLoader 应用 Sprite 图像

javascript - 使用 selenium 将图像从浏览器内存复制到 python 内存

javascript - 在 javascript 中部分应用带有下划线的 String.prototype...

javascript - $_POST ["g-recaptcha-response"],它存储在验证码 div 元素中的什么位置?如何使用 AJAX 处理 Recaptcha?

javascript - 页面加载后 5 秒后加载 javascript?

javascript - 摆脱联系人表单中的灰色字体和文本框边框