【问题标题】:JavaScript click a button by name from chrome consoleJavaScript 从 chrome 控制台按名称单击按钮
【发布时间】:2019-12-18 15:02:24
【问题描述】:

我正在尝试使用 chrome 控制台以编程方式单击网页中的按钮。

(已更新)按钮的代码如下所示:

<FORM METHOD=GET ACTION="/xxx/yyy/kkk.jsp" >
    <INPUT type="hidden" name="page" value="721">
    <INPUT type="hidden" name="reqType" value="ReprintO">
    <INPUT type="hidden" name="title" value="Reprint Label">
    <INPUT type="hidden" name="system" value="reprint">
    <td align=right width=25%><input type=submit value='>' name=BTN_CHOICE5/>
    <td>&nbsp;&nbsp;Reprint Label
</form>

页面上还有几个带有value= '&gt;' 的按钮,所以我想我需要使用名称单击它。我试过了 document.querySelector('input[name="BTN_CHOICE4"]').click(); 并没有用。如何使用JS点击这个按钮?

【问题讨论】:

  • 您的 html sn-p 似乎无效...
  • 您应该将属性值用双引号括起来。 &lt;input type="submit" value="&gt;" name="BTN_CHOICE4" /&gt;
  • 出于安全原因,我认为您不能这样做。但话又说回来,在某些情况下,点击事件应该链接到您可以调用的函数。
  • @Fabricator:我刚刚更新了按钮的来源

标签: javascript


【解决方案1】:

如果你有 ID 属性,你可以使用

$('#btnId').click();

或者如果你想按名字去,你可以使用

$('[name="someName"]').click();

但是如果你使用 by Id 而不是 name 就好像是多个控件具有相同的 name 属性和值,那么所有这些控件的单击事件都将被调用。

【讨论】:

  • 我没有身份证。而且它需要是 JS,而不是 jQuery
【解决方案2】:

你可以用这个

document.getElementsByName("BTN_CHOICE5")[0].click()
<FORM METHOD=GET ACTION="/xxx/yyy/kkk.jsp" >
    <INPUT type="hidden" name="page" value="721"/>
    <INPUT type="hidden" name="reqType" value="ReprintO"/>
    <INPUT type="hidden" name="title" value="Reprint Label"/>
    <INPUT type="hidden" name="system" value="reprint"/>
    <td align=right width=25%><input type=submit value='>' name=BTN_CHOICE5 onclick="alert('test')"/></td>
    <td>&nbsp;&nbsp;Reprint Label</td>
</FORM>

【讨论】:

    【解决方案3】:

    关于以下 HTML:

    <input type=submit value='>' name=BTN_CHOICE5/>
    

    你应该知道:

    1. 字符&amp;gt;应该是实体编码&amp;gt;
    2. 当属性不使用引号("')来分隔其值时,直到第一个空格或&amp;gt; 之前的所有字符都被解释为值。在您的情况下,这意味着 name=BTN_CHOICE5/&gt; 转换为 name="BTN_CJOICE5/"&gt;

    如果单击按钮的练习是为了提交&lt;form&gt;,您应该知道像.click() 这样的合成事件不会触发默认操作。我可以建议submitting 代替吗?

    document.querySelector('form').submit()
    

    【讨论】:

    • 谢谢。网站不是我写的,我只是想写一个脚本,在这个网站上执行某个任务,这个按钮需要点击(提交)。
    【解决方案4】:

    就像拉克什所说, $('#btnId').click(); 有效。

    不过,简单模式是在浏览器中右键单击元素,单击检查(或在元素选择器中找到它,然后选择它),然后简单地在所选元素上触发事件:

    $0.click();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 2016-06-24
      • 2017-12-09
      • 2011-06-16
      • 1970-01-01
      • 2013-07-11
      相关资源
      最近更新 更多