为什么我不能获得此文本输入的值?

时间:2013-06-30 16:02:12

标签: javascript jquery-ui datepicker

看起来很简单,但我尝试的任何工作都没有。我有一个jquery ui datepicker,我使用val()来获取按钮click()上的输入值,然后记录它。点击事件正在运行。我可以记录我自己编写的字符串,但是当我传递console.log()时,存储datepicker值的变量......没有。我已经尝试使用html()和text()而不是val(),仍然没有

//JS

 $(function(){

    $("button").button();
    $("#date").datepicker();

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

    $("button").click(function(){

// this logs
  console.log("event working");    

// but this logs nothing

        console.log(date);


    });//close click

});//closes function

//HTML
<!DOCTYPE html>
<html>
    <head>
<script src="http://www.parsecdn.com/js/parse-1.2.8.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="http://myDomain/bn/lbStyle.css"/>
<script src="http://myDomain/index.js"></script>

        <title>
            Welcome to The Bringer Network
        </title>
    </head>

    <body>

        <form id="dialog">

        <p>Date <input type="text" id="date"/></p>

         <button>Submit</button>

        </form>
    </body>
</html>

2 个答案:

答案 0 :(得分:3)

如果要分配输入字段的值,则应在单击中声明日期变量。浏览下面的代码。实际上,在页面加载后很快就会初始化,而不是正确的方法。

$(function(){

    $("button").button();
    $("#date").datepicker();



    $("button").click(function(e){
        e.preventDefault();
        var date = $("#date").val();// look this line. It should be inside.
        console.log("event working");   
        console.log(date);
    });//close click

});

答案 1 :(得分:1)

我不确定你想做什么。但我认为你应该在你的var date = $("#date").val();事件中放置click。因为当代码为空时,代码会分配字段的.val()。这就是你的var date为空的原因。

http://jsfiddle.net/FnGmS/ - 以下是此代码的工作演示:

$(function () {
    $("button").button();
    $("#date").datepicker();
    $("button").click(function () {
        var date = $("#date").val();
        console.log("event working");
        console.log(date);
    });
});