单击按钮时,我有这个附加的文本框,但是jquery中的.datepicker代码不起作用,但是在普通文本框中,它可以工作。
.datepicker如何在Jquery中工作?这是示例jsfiddle。 http://jsfiddle.net/fqjvLxn1/14/
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.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();
$("#btn1").click(function(){
$("p").append("<input type='text' class='asd datepicker'>");
});
} );
</script>
</head>
<body>
<button id="btn1">Append text</button>
<p>(.datepicker wont work here when I clicked a Button) </p>
<input type='text' class='asd2 datepicker'>(But works here)
</body>
</html>
答案 0 :(得分:1)
您应该再次调用datepicker函数。 因为您要在一次文档准备中致电。页面加载后立即执行此片段。因此,您的动态日期选择器尚不存在。您需要在每个新插入的元素上调用$(YourElementSelector).datepicker()
$( function() {
$( ".datepicker" ).datepicker();
$("#btn1").click(function(){
$("p").append("<input type='text' class='asd datepicker'>");
$( ".datepicker" ).datepicker();
});
} );
答案 1 :(得分:0)
首先,将您的jQuery代码移到body
的末尾。初始页面加载后jQuery不了解新元素/附加元素,因此您将不得不使用document
来搜索这些元素。查看此代码段
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.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>
</head>
<body>
<button id="btn1">Append text</button>
<p>(.datepicker wont work here when I clicked a Button) </p>
<input type='text' class='asd2 datepicker'>(But works here)
<script>
$(function() {
$(".datepicker").datepicker();
$("#btn1").click(function() {
$("p").append("<input type='text' class='asd datepicker' id='show'>");
});
$(document).on("focus", ".asd", function() {
$(this).datepicker();
});
});
</script>
</body>
</html>