为什么可以't我得到这个文本输入的值

Why can't I get the value of this text input?

本文关键字:文本 输入 为什么      更新时间:2023-09-26

这看起来很简单,但我尝试的都不起作用。我有一个jquery-ui-datepicker,我使用val()获取click()按钮上输入的值,然后将其记录下来。click事件正在工作。我可以记录我自己编写的字符串,但当我传递console.log()这个存储日期选择器值的变量时。。。没有什么我试过用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>

如果要分配输入字段的值,则应在click中声明日期变量。浏览下面的代码。实际上,您在加载页面后不久就进行了初始化,而在您的情况下,这不是正确的方式。

$(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
});

我不确定你想做什么。但我认为你应该把这个: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);
    });
});