Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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_Jquery_Html - Fatal编程技术网

加载页面时停止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然后需要先隐藏这两个符号。。添加一个css
display:none
#update{display:none;}#newstore{display:none;}
隐藏了两者,现在什么都没有了你能给我们看一把小提琴吗?也许我们可以帮你。我建议检查
stname
的长度,看看它是否大于零,而不是
=
#stname[value=""]~[#parent ]#update,#stname:not([value=""])~[#parent ]#newstore{
    display:none;
}