JavaScript:如果输入字段为空,则隐藏按钮链接

时间:2017-09-07 03:31:58

标签: javascript jquery jsp

我想在输入字段(id =" valagency")为空时隐藏按钮链接(id =" btnsubmit"),以便我的用户只能点击输入字段后面的按钮填充了一些数据。

对于html部分,我有

<tr>
 <td class="tbldatastart">
  <input type="text" id="**valagency**" name="agencyname<%= strAgencyId %>" class="btn10" readonly> 
  <input type="text" name="agencyid<%= strAgencyId% >"> 
  <a href="javascript:Map('<%= strAgencyId %>');" class="btn1">Map</a>
 </td>
</tr>

<tr>
 <td colspan="2"></td>
 <td><a href="javascript:Submit()" id="btnsubmit" class="btn1">Submit</a></td>
</tr>

对于javascript,我有

function Submit() {

  $("#valagency").keyup(function(){
    if($(this).val()) {
        $("#btnsubmit").show();
    } else {
        $("#btnsubmit").hide();
    }

  });
}

提交按钮仍然存在。我不知道我做错了什么。请帮忙。

提前致谢。

4 个答案:

答案 0 :(得分:3)

您正在调用函数提交,此时您的启用禁用按钮代码将会执行。

您需要独立使用该代码而不是提交电话。

将以下代码放在提交功能之外:

$("#valagency").keyup(function(){
    if($(this).val() == "") {
        $("#btnsubmit").show();
    } else {
        $("#btnsubmit").hide();
    }
});

如果您想要停用提交提交按钮,请点击您在使用keyup活动时的可能性。

如果您想在提交按钮上单击,则需要使用keyup

如果您想使用keyup,则代码将超出submit功能。

Keyup无法将数据粘贴到输入。 为此,请考虑this 示例。

<input type="text" name ="mytxt" id="mytxt"> 
<a href="#" id="btnsubmit" class="btn1">Submit</a>


$('input[name=mytxt]').change(function() { 
if($(this).val() == "") {        
        $("#btnsubmit").hide();
    } else {
        $("#btnsubmit").show();
    }
});

如果您想在页面加载时隐藏按钮,则可以使用https://jsfiddle.net/kurbhatt/m06yywmn/2/

答案 1 :(得分:0)

问题是您在点击提交按钮时正在运行keyup()功能。这将永远不会执行。只需在此按钮单击之外移动keyup()功能即可。您还希望默认隐藏#btnsubmit

这是一个最小的例子:

&#13;
&#13;
$("#btnsubmit").hide();
$("#valagency").keyup(function() {
  if ($(this).val()) {
    $("#btnsubmit").show();
  } else {
    $("#btnsubmit").hide();
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" id="valagency">
<a href="#" id="btnsubmit" class="btn1">Submit</a>
&#13;
&#13;
&#13;

希望这有帮助! :)

答案 2 :(得分:0)

使用change事件来获取输入字段的最终值并检查它是否空虚,而不是键盘事件。

答案 3 :(得分:0)

它只与输入keyup事件有关,因此如果要检查输入的值以隐藏/显示按钮。使用'submit'使其独立,它应该在'submit'之前隐藏/显示。

function submit() {
  //do something
}
$("#valagency").keyup(function(){
  if($(this).val() == "") {
      $("#btnsubmit").show();
  } else {
      $("#btnsubmit").hide();
  }
});