加载页面时停止javascript触发

时间:2016-05-03 06:15:16

标签: javascript jquery html

我使用<body onload="dis()">

在身体上调用此函数onload
function dis(){
    if($('#stname').val() == ""){
        $('#update').hide();
        $('#newstore').show();
    }
    else {
        $('#update').show();
        $('#newstore').hide();
    }
}

基本上我想在加载时检查特定输入框是否为空。如果它为空,则应显示newstore按钮。如果没有,它应该显示更新按钮。但是这样,它在页面加载时可以正常工作,但是当我在stname中输入内容时,按钮会切换。对付这个的方法是什么?有没有办法在页面加载完成后停止javascript触发?

5 个答案:

答案 0 :(得分:2)

您需要做的是

String flag = getIntent().getStringExtra("flag");
if(flag.equals("add")) {
//Write a code for add
}else {
//Write a code for modify
}

答案 1 :(得分:1)

在文档DOM准备就绪时进行检查,这很容易,因为您使用的是JQuery:

speech.speak()

答案 2 :(得分:0)

此外,要设置页面加载的可见性,您必须在更改字段内容时更改它。您可以在此字段中使用“更改”事件,例如

var field = $("#stname");

field.on("change", function() {
    $("#update").toggle(field.val() === "");
    $("#newstore").toggle(field.val() !== "");
});

toggle()的作用类似于hide()和show(),将boolean参数设置为show(true)或hide(false)。

答案 3 :(得分:0)

你可以使用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();
  }

});

了解更多https://learn.jquery.com/using-jquery-core/document-ready/

答案 4 :(得分:0)

为您提供一个您可能没有考虑的替代解决方案:这可以通过CSS使用adjacent sibling&amp; attribute选择器和negation pseudo-class,假设input元素与button元素或其父元素共享相同的直接父元素,如下所示:

#stname[value=""]~[#parent ]#update,#stname:not([value=""])~[#parent ]#newstore{
    display:none;
}