显示/隐藏提交按钮

时间:2009-12-18 08:54:15

标签: jquery button submit

HOWTO?

仅当一个或两个所需输入填充值时,才显示提交按钮 但如果删除所需的值,则提交必须消失。

我应该用keyup来完成。 任何想法?

5 个答案:

答案 0 :(得分:4)

以下功能可以帮助您:

$(function(){
    // Hide submit button if either field is empty
    $('form input').keyup(function(){
        if($('#input1').val() == "" || $('input2').val() == ""){
            $('#submit').hide();
        }
        else {
            $('#submit').show();
        }
    });
    // Don't submit form if either field is empty
    $('form').submit(function(){
    if($('#1').val() == "" || $('#2').val() == ""){
        return false;
    }
    });
});

顺便说一句,您最初需要使用CSS(display:none)隐藏提交按钮。

答案 1 :(得分:2)

我建议在表单本身使用一个事件处理程序并检查所有必填字段。为了使它更具抽象性,如果你可以使用某些属性标记输入,那就太好了。示例解决方案如下:

    $('#formNode').keyup(function(e){
            var invalid = false;
            $(this).children().each(function(i,child){  
                if(($(child).attr("isReq") == "true") 
                    && child.value.length == 0
                ){
                    invalid = true;
                }   
            });
            $("#submitButton")[invalid ? "hide" : "show"]();
});   




    <form id="formNode">
            <input type="text" isReq="true"/>
        <input type="text" isReq="true"/>
        <input type="text" isReq="true"/>
        <input type="submit" value="Submit" style="display:none" id="submitButton"/>
    </form>

正如您所看到的,每次要检查节点时,您应该使用属性isReq标记它,脚本将为您完成工作。

答案 2 :(得分:0)

在基本javascript中没有引用:

<input type="text" id="input-1" onkeyup="submitChange();" />

<input type="text" id="input-2" onkeyup="submitChange();" />

<input type="submit" id="submit" style="display: none;" />

<script type="text/javascript">

inputOne = document.getElementById("input-1"); 
inputTwo = document.getElementById("input-2"); 
inputSubmit = document.getElementById("submit"); 

function submitChange()
{
     if(inputOne.value == "" || inputTwo.value == "")
     {
          inputSubmit.style.display = "none";
     }
     else
     {
          inputSubmit.style.display = "block";
     }
}

</script>

答案 3 :(得分:0)

$('#inputid').keyup(function() {
    if ($(this).val().length > 0) {
       $('#submitbutton').show();
    } else {
       $('#submitbutton').hide();
    }
});

for multiple:

$('#inputid1,#inputid2, etc...').keyup(function() {
   var hidden = false;
   $('#inputid1,#inputid2, etc...').each(function() {
      if ($(this).val().length == 0) {
          hidden = true;
      }
   })
   if (hidden) {
      $('#submitbutton').hide();
   } else {
      $('#submitbutton').show();
   }

});

答案 4 :(得分:0)

为什么不看看onblur

onblur Event

  

onblur事件发生在一个对象上   失去焦点。