Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript选择具有提交类型的按钮?_Javascript - Fatal编程技术网

如何使用Javascript选择具有提交类型的按钮?

如何使用Javascript选择具有提交类型的按钮?,javascript,Javascript,我有两个这样的按钮: <button class="medium" id="register" type="button" onclick="location.href='/Account/Register'">Register</button> <button class="medium default" id="login" type="submit">Login</button> 寄存器 登录 My Javascript按

我有两个这样的按钮:

<button class="medium" id="register" type="button"
        onclick="location.href='/Account/Register'">Register</button>
<button class="medium default" id="login" type="submit">Login</button>
寄存器
登录
My Javascript按id选择按钮:

<script type="text/javascript">
    (function () {
        document.getElementsByClassName('form')[0]
            .addEventListener("submit", function (ev) {
                document.getElementById('login').innerHTML += '&nbsp;<i class="fa fa-spin fa-spinner" data-ng-show="fetching.length > 0"></i>';
            }, false);
    })();
</script>

(功能(){
document.getElementsByClassName('form')[0]
.addEventListener(“提交”,功能(ev){
document.getElementById('login').innerHTML+='';
},假);
})();
我如何更改它,使javascripts选择带有“submit”或 如果不可能,按钮上有一个“提交”类


请注意,我之所以要这样做,是因为许多表单都使用javascript。我需要一个常见的方法来找到“提交”按钮

您可以通过以下操作获取页面上的所有按钮:

var buttons = document.getElementsByTagName("button");
然后,您可以遍历该数组,找到所有类型属性值为“submit”的按钮

var submits = [];
var i;
for(i = 0; i < buttons.length; i++) {
   if(buttons[i].type == "submit") { submits.push(buttons[i]); }
}
var提交=[];
var i;
对于(i=0;i
您可以使用querySelectorAll。它可以追溯到IE8

document.querySelectorAll('[type=submit]')
JS fiddle here

您可以使用它查找与CSS样式格式选择器匹配的第一个元素-它作为
文档
的方法来搜索(显然)整个文档,或者作为元素的方法来搜索:

后者可能对您最有用,因为您希望找到一个可能位于表单中的提交按钮,并且您已经有了对表单的引用:在使用
addEventListener()
附加到表单的提交处理程序中,您可以使用
this.querySelector(…)

演示:

几乎所有现代浏览器都支持
.querySelector()
方法,但是(一如既往)关于IE的一个注意事项是:从IE8开始就支持它。但是,由于您使用的是
addEventListener()
,所以您可能根本不关心旧IE


如果您确实需要支持旧版本的IE,您可以使用查找所有按钮元素,然后循环查找包含
type=“submit”

您支持的IE 9的按钮元素。非常感谢这个解决方案!就我的情况而言,我已经有了表格。我可以用它来表示某个元素吗?是的,
someElement
可以是任何元素。我只是在添加一个演示的过程中,这个演示就是为一个表单做的。看见
document.querySelector('button[type="submit"]').innerHTML += '&nbsp;...';
// OR
someElement.querySelector('button[type="submit"]').innerHTML += '&nbsp;...';