在单击处理程序中测试输入值

时间:2015-06-26 12:48:23

标签: javascript jquery html event-handling

我有一个id为日期的文本字段。我想在textfield为空时给出一个对话框boxmsg。我尝试了下面的代码很多次,但它永远不会执行按钮单击功能。为什么会这样,请告诉我

var val = $('#date').val();

$(document).ready(function() {

    $("#btnSubmit").click(function() {

        if (val != null) {

            $("#dialog").dialog();
            return false;
        }
    });
});

3 个答案:

答案 0 :(得分:1)

var val = $('#date').val();处理程序中移动click,以便val始终包含#date输入中的最新值。

$(document).ready(function() {

    $("#btnSubmit").click(function() {
        var val = $('#date').val().trim(); // Remove leading and trailing spaces
        // Moved inside click handler

        if (!val) { // Check if falsy value

            $("#dialog").dialog();
            return false;
        }
    });
});

答案 1 :(得分:0)

您的val变量范围看起来不同。所以你可以尝试类似的东西:

$(document).ready(function () {
    $("#btnSubmit").click(function(){
        if ($('#date').val()){
            $("#dialog").dialog();
            return false;
        }
    });
});

答案 2 :(得分:0)

这样的东西?单击时获取值,如果它为空则发出警报?

您需要在点击时获取文本框的值,否则它将为空,因为它将在页面加载时设置为ONCE。



$(document).ready(function () {
    $("#btnSubmit").click(function(){
      var textbox = $('#textbox').val();
      if (textbox.length == 0){
        alert();
      }
    });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<input id="textbox" type="text" placeholder="Type here"><br>
<button id="btnSubmit">Click me</button>
&#13;
&#13;
&#13;