我正在使用Jquery和Ajax来执行操作,我需要在加载完整页面后,自动点击每个按钮的代码。
我使用以下javascript代码点击页面末尾的所有按钮。但它没有用。
<script type='text/javascript'>
document.getElementByClassName('sub').click();
</script>
我的网页代码的结构
[JQuery]
[PHP]
[HTML]
[Javascript]
我将所有按钮类型设置为“BUTTON”,当我设置
时型= “提交”
Autoclick代码仅适用于第一个按钮,但使用“按钮”类型时,它不适用于任何一个按钮。
如果我手动点击这些按钮,它们就能正常工作。
请提出任何建议。谢谢。
答案 0 :(得分:1)
在jQuery中,您可以触发点击
$( ".sub" ).trigger( "click" );
答案 1 :(得分:1)
因为您检索NodeList(如注释中所指出的):
$(document).ready(function () {
var butEl = document.getElementsByClassName('sub'),
count = butEl.length;
for (i = 0; i < count; i++){
butEl[i].click();
}
});
也是getElementsByClassName
答案 2 :(得分:0)
你使用了错误的功能。元素在该方法中是复数。
document.getElementsByClassName('sub');
此外,调用此NodeList上的单击将无效。您需要遍历并在每个索引上调用事件。
另外,你说你正在使用jQuery。为确保在DOM准备就绪后调用,请使用$()。ready()包装JS。
最后,使用您自己提供的工具,在本例中为jQuery,并以这种方式选择您的元素。
$(document).ready(function(){
$(".sub").click()
});
答案 3 :(得分:0)
如果您尝试点击多个不同的表单提交按钮,那么浏览器只会为其中一个提供POST是有道理的 - 一个页面无法同时导航到多个不同的网址。
同样,当您将type
更改为button
时,即使您点击按钮,也不会提交任何表单。
如果您知道自己在做什么,可以随时向所有表单添加submit
事件处理程序,并通过ajax请求提交它们 - 这应该允许处理多个表单。请注意,您可能需要制定一些额外的逻辑来向用户显示每个表单的成功/失败,因为浏览器无法导航到任何现有的&#34;提交的#34;页。
$(document).on('submit', 'form', function() {
$.ajax({
url: $(this).attr('action'),
type: $(this).attr('method'),
dataType: 'json',
data: $(this).serialize(),
success: function(data) {
// Add logic here for handling success for each form, if required
},
error: function(xhr, err) {
// Add logic here for handling errors for each form, if required
}
});
return false; // To stop the browser processing this form
});
使用此方法,首次使用type="submit"
按钮的尝试应该有效 - 不过,我建议您尽可能使用元素选择器来确定您尝试定位的表单和按钮