我有一个jQuery脚本可以在页面加载时执行自动提交触发 并且重复执行,我想在页面加载后制作一个按钮老虎机
JavaScript
$(document).ready(function () {
$("[id*='sub']").click();
});
HTML代码
@using (Html.BeginForm("GenerateQR", "TRoom", FormMethod.Post))
{
<input type="text" style="display:none;" name="HlId" value="@HttpContext.Current.Session["USERID"].ToString()" />
<input id="sub" type="submit" style="display:none" value="Click Here To Generate QR Code" />
}
谢谢。
答案 0 :(得分:0)
jQuery .one()
附加一个处理程序,该处理程序每个事件每个元素最多运行一次。因此,您可以说{p>而不是.click()
`.one('click', function() { ... })`.
您可以在jQuery's documentation for .one()
上了解此内容。
由于您要提交页面加载,因此请按以下步骤解决它:
$(document).ready(function(){
const autSubmit =$(this).find("input[type='submit']);
autSubmit.one('click',function(){
/* Any code you will like to execute onSubmit*/ });
autSubmit.trigger('click');});
第一次执行后,尝试单击按钮,您会注意到单击处理程序中的代码将不会再次执行,我认为这是您想要的,因此您也可以在该单击处理程序中禁用按钮。 所以我们有
` /* Any code you will like to execute onSubmit*/`
上面您可以替换为
$(this).attr('disabled',true)
实际上,该按钮已被禁用,但事实是,第一次单击该按钮后,单击处理程序将不会再次触发。
答案 1 :(得分:0)
最终使代码正常工作
window.onload = function () {
if (localStorage.formSubmitted !== 'true')
{
localStorage.setItem("formSubmitted", "true");
document.getElementById('sub').click();
}
else
{
localStorage.removeItem("formSubmitted");
}
}
</script>
谢谢大家的帮助
答案 2 :(得分:0)
我也认为最好将会话用于相同的目的 window.onload = function(){
if (sessionStorage.formSubmitted !== 'true')
{
sessionStorage.setItem("formSubmitted", "true");
document.getElementById('sub').click();
}
else
{
sessionStorage.removeItem("formSubmitted");
}
}
</script>