【发布时间】:2018-04-16 16:35:32
【问题描述】:
我正在尝试让 jQuery UI 日期选择器通过 php 在 IE 中工作。我用 div 做了他们的基本示例,它甚至在 IE 中也可以工作。但是,尝试将其应用于我的代码适用于 Chrome 和 Firefox,但不适用于 IE。运行 IE 11。这只是日期选择器的核心部分:
echo" <link rel=\"stylesheet\" href=\"//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css\"> \n";
echo " <script src=\"https://code.jquery.com/jquery-1.12.4.js\"></script>";
echo " <script src=\"https://code.jquery.com/ui/1.12.1/jquery-ui.js\"></script>";
echo " <script>";
echo " $( function() {";
echo " $( \"#datepicker\" ).datepicker();";
echo " } ); ";
echo " $( function() {";
echo " $( \"#datepicker1\" ).datepicker();";
echo " } ); ";
echo " </script> ";
echo "<tr> \n";
echo "<td> \n";
echo " <form action=\"Web.php\" method=\"post\"> \n";
if(!empty($_POST["datefrom"]))
$datefr = $_POST['datefrom'];
echo " <b>Date From: (ex: 7/12/2017):</b> <input type=\"text\" id=\"datepicker\" name=\"datefrom\" value=\"$datefr\" >\n";
echo "</td> \n";
echo "<td> \n";
if(!empty($_POST["dateto"]))
$dateto = $_POST['dateto'];
echo " <b>Date To: (ex: 7/12/2017):</b> <input type=\"text\" id=\"datepicker1\" name=\"dateto\" value=\"$dateto\" >\n";
echo "</td> \n";
echo "<td> \n";
echo "</td> \n";
echo "</tr> \n";
它在 Chrome 和 Firefox 中运行良好。但在 IE 中,我只有输入日期的字段,没有日期选择器。我用了这个例子:
我不确定 IE 是否不喜欢特定的东西。我确实在桌子上有一些样式。我接下来要尝试的是将所有样式注释掉,然后看看它是否会出现。
希望有人能立即发现它。
我能够进行检查并发现此错误 - “SCRIPT5007:属性 '$' 的值为 null 或未定义,不是函数对象”,它指向:
$( function() { $( "#datepicker" ).datepicker(); } );
我不能发布所有渲染的 HTML,因为我必须清理一堆。这是 jQuery UI 和 datepicker 部分的部分
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() { $( "#datepicker" ).datepicker(); } ); $( function() { $( "#datepicker1" ).datepicker(); } );
</script>
<td>
<form action="Web.php" method="post">
<b>Date From: (ex: 7/12/2017):</b> <input type="text" id="datepicker" name="datefrom" value="" >
</td>
<td>
<b>Date To: (ex: 7/12/2017):</b> <input type="text" id="datepicker1" name="dateto" value="" >
</td>
【问题讨论】:
-
发布呈现的 HTML,而不是您问题中的 PHP。还要在浏览器的控制台中添加任何错误。
-
在旁注中,您可以通过关闭 PHP 标记然后使用 HTML 在 PHP 文件中使用常规 html。当你想使用 PHP 时,只需通过 插入它。这样可能看起来更整洁一些,您可以使用 HTML 的默认 \n 而不是自己输入。现在,回答你的问题。 IE 的一切都很糟糕,所以我个人只是不关心使用它的人,但是当客户强迫我关心时,我喜欢使用一种叫做 polyfill 的东西。它将处理对大量功能的跨浏览器支持。 github.com/chemerisuk/better-dateinput-polyfill
-
例如,这个 polyfill 可以让你插入参数来决定元素应该如何响应。 data-polyfill 允许您决定哪些设备应该使用 polyfill。这样做的好处是,您可以立即为所有设备和浏览器实现所需的功能,而该设备支持 IE 8+。其他的也很好:)
标签: php jquery-ui datepicker internet-explorer-11