jQuery使用id选择器返回错误的值

时间:2015-04-28 11:55:11

标签: php jquery

我想我会慢慢陷入精神错乱。在我的代码中我有

<script>
     console.debug("1) <?=$_SESSION["searchEndDate"]?>");
     console.debug("2) " + $("#searchEndDate").val()); //if another element would exist with that it, it would give me that elements value here
</script>

<input type="text" class="dateInput" id="searchEndDate" value="<?=$_SESSION["searchEndDate"]?>" />

<script>
     console.debug("3) " + $("#searchEndDate").val());
     console.debug("4) <?=$_SESSION["searchEndDate"]?>"); // just to be sure it wasn't interfered anywhere
</script>

控制台输出奇怪地说

1) 03.05.2015 //correct
2) undefined //correct (no other elements with the same id)
3) 01.05.2015 //wait...what?
4) 03.05.2015 //still correct, session was not interfered

...如果我查看页面的html源代码,则value元素显然包含正确的值。仍然调试包含错误的值...当我在代码中稍后初始化一个日期选择器时,datepicker将具有错误的日期。我真的很困惑......

我错过了什么?

[编辑]:是的,我知道日期选择器的实际初始化必须在文档就绪功能中。但那不是重点!请在回答之前仔细阅读问题!

[编辑2]:使用jQuery:

jQuery core 1.10.2
jQuery ui 1.10.4
jQuery mobile 1.4.5

2 个答案:

答案 0 :(得分:1)

好的我已经在我的localhost上运行了以下代码:

<?php
session_start();

$_SESSION['searchEndDate'] = '03.05.2015';
?>

<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>

<script>
     console.debug("1) <?=$_SESSION["searchEndDate"]?>");
     console.debug("2) " + $("#searchEndDate").val()); //if another element would exist with that it, it would give me that elements value here
</script>

<input type="text" class="dateInput" id="searchEndDate" value="<?=$_SESSION["searchEndDate"]?>" />

<script>
     console.debug("3) " + $("#searchEndDate").val());
     console.debug("4) <?=$_SESSION["searchEndDate"]?>"); // just to be sure it wasn't interfered anywhere
</script>

我的控制台输出是这样的:

1) 03.05.2015
2) undefined
3) 03.05.2015
4) 03.05.2015

您的浏览器历史记录是否存在问题,尝试自动填写它知道的输入字段?尝试类似 - http://www.w3schools.com/tags/att_input_autocomplete.asp

的内容

答案 1 :(得分:-1)

您是否尝试过将代码放入

$( document ).ready(function() {
    console.log( "ready!" );
});

在您通过javascript

访问之前,您尝试访问#searchEndDate