加载页面时停止javascript触发
我使用加载页面时停止javascript触发,javascript,jquery,html,Javascript,Jquery,Html,我使用 基本上,我想检查一个特定的输入框是空的还是没有加载。如果为空,则应显示newstore按钮。如果没有,则应显示更新按钮。但这样,当页面加载时,它可以按我所希望的方式工作,但当我在stname中键入某个内容时,按钮会切换。有什么办法可以解决这个问题?有没有办法在页面加载完成后停止javascript触发?在文档DOM就绪时进行检查,这很容易,因为您使用的是JQuery: $(document).ready(function(){ if($('#stname').val() == "
基本上,我想检查一个特定的输入框是空的还是没有加载。如果为空,则应显示newstore按钮。如果没有,则应显示更新按钮。但这样,当页面加载时,它可以按我所希望的方式工作,但当我在
stname
中键入某个内容时,按钮会切换。有什么办法可以解决这个问题?有没有办法在页面加载完成后停止javascript触发?在文档DOM就绪时进行检查,这很容易,因为您使用的是JQuery:
$(document).ready(function(){
if($('#stname').val() == ""){
$('#update').hide();
$('#newstore').show();
}
else {
$('#update').show();
$('#newstore').hide();
}
});
你需要做的是
$(window).on("load",function(){
if($('#stname').val() == ""){
$('#update').hide();
$('#newstore').show();
}
else {
$('#update').show();
$('#newstore').hide();
}
})
此外,若要在页面加载时设置可见性,必须在更改字段内容时对其进行更改。您可以在该字段上使用“更改”事件,如
var field = $("#stname");
field.on("change", function() {
$("#update").toggle(field.val() === "");
$("#newstore").toggle(field.val() !== "");
});
toggle()的工作原理类似于hide()和show(),将布尔参数设置为show(true)或hide(false)。您可以使用DOM inteand of body load。 在文档“就绪”之前,页面无法安全操作。jQuery会为您检测这种就绪状态。$(document).ready()中包含的代码只有在页面文档对象模型(DOM)准备好让JavaScript代码执行后才会运行。$(window).load(function(){…})中包含的代码将在整个页面(图像或iframe)而不仅仅是DOM就绪后运行
$( document ).ready(function() {
$('#update').show();
$('#newstore').hide();
// run this if field empty
if($('#stname').val() == ""){
$('#update').hide();
$('#newstore').show();
}
}))
欲了解更多信息,请提供您可能没有考虑过的替代解决方案:这可以在CSS中实现,无需任何JavaScript,使用&selector和,假设
输入元素与按钮元素或其父元素共享同一个直接父元素,如下所示:
#stname[value=""]~[#parent ]#update,#stname:not([value=""])~[#parent ]#newstore{
display:none;
}
尝试在document.ready=>$(document.ready(function(){dis();//在此处调用function})内调用此函数;请分享你的html代码。您是否在任何文本框事件(如键向上/向下)上调用了此函数?问题是代码的任何其他部分。根据您提供的代码,此脚本代码不会触发多个脚本。可能是此函数将调用任何其他地方或存在同名函数。尝试更改一次函数名。啊@吉特德拉提瓦里,你抓住我了。我在for中调用了函数onchage()。我的坏家伙,抱歉,作为一个Jquery对象是:D首先错过了$
符号:D然后需要先隐藏这两个符号。。添加一个cssdisplay:none
#update{display:none;}#newstore{display:none;}
隐藏了两者,现在什么都没有了你能给我们看一把小提琴吗?也许我们可以帮你。我建议检查stname
的长度,看看它是否大于零,而不是=
。
#stname[value=""]~[#parent ]#update,#stname:not([value=""])~[#parent ]#newstore{
display:none;
}