Jquery/Javascript - 使用日期选择器动态创建表单
Jquery/Javascript - Dynamicly Create Forms with Datepicker
我是 js/jquery 的新手,我正在尝试使用 jquery 动态创建 html 表单,但我不知道如何 "repeat" (抱歉,我不知道试用期) jquery.
的 "datepicker" 函数
下面是html:
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script>
$(document).ready(function(){
var x = 0;
$("#datepicker").datepicker({dateFormat: 'yy-mm-dd'});
$("#add").click(function(){
x++;
var dateFuncName = "#datepicker" + x.toString();
var dateFuncName2Call = "datepicker" + x.toString();
$(dateFuncName).datepicker({dateFormat: 'yy-mm-dd'});
$("#name_data").append('<p>First Name: <input name="name['+x+'][first]" type="text"> Last Name: <input name="name['+x+'][last]" type="text"> Date: <input id="' + dateFuncName2Call + '" name="name['+x+'][date]" type="text"> <input id="remove'+x+'" type="button" name="remove" value="remove"></p>');
$("#remove"+x).click(function(){
$(this).parent('p').remove();
});
});
});
</script>
<form action="test.php" method="post">
<div id="name_data">
<p>First Name: <input name="name[0][first]" type="text">
Last Name: <input name="name[0][last]" type="text">
Date: <input id="datepicker" name="name[0][date]"></p>
</div>
<p><input id="add" type="button" name="add" value="Add more"></p>
<p><input type="submit" name="submit" value="Submit..."></p>
</form>
</html>
具体来说,我从之前的实现中了解到,对于 html 中的每个日期时间字段,我需要一个新的“#datetime”迭代(即#datetime2、3 等),这适用于预定义的字段数。
这就是我在这里尝试做的,特别是在上面代码的这一点上:
x++;
var dateFuncName = "#datepicker" + x.toString();
var dateFuncName2Call = "datepicker" + x.toString();
$(dateFuncName).datepicker({dateFormat: 'yy-mm-dd'});
请原谅这里 Jquery 的拙劣使用,但我现在真的是菜鸟 :D
提前感谢任何 guidance/advice :D
$(document).ready(function(){
var x = 0;
$("#datepicker").datepicker({dateFormat: 'yy-mm-dd'});
$("#add").click(function(){
x++;
var dateFuncName = "datepicker" + x.toString();
$("#name_data").append('<p>First Name: <input name="name['+x+'][first]" type="text"> Last Name: <input name="name['+x+'][last]" type="text"> Date: <input id="' + dateFuncName + '" name="name['+x+'][date]" type="text"> <input id="remove'+x+'" type="button" name="remove" value="remove"></p>');
$("#"+dateFuncName).datepicker({dateFormat: 'yy-mm-dd'});
$("#remove"+x).click(function(){
$(this).parent('p').remove();
});
});
});
如果您正在尝试克隆您的字段,这是可行的方法。
$(document).ready(function(){
$("#add").click(function(){
var $cloneFields = $("#name_data").clone(); // Clone your 3 inputs into a variable
$cloneFields.find(":input").val(''); // Clear the fields of this variable
$($cloneFields).insertAfter("#name_data"); // Insert your array of DOM elements after your cloned div
});
});
我是 js/jquery 的新手,我正在尝试使用 jquery 动态创建 html 表单,但我不知道如何 "repeat" (抱歉,我不知道试用期) jquery.
的 "datepicker" 函数下面是html:
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script>
$(document).ready(function(){
var x = 0;
$("#datepicker").datepicker({dateFormat: 'yy-mm-dd'});
$("#add").click(function(){
x++;
var dateFuncName = "#datepicker" + x.toString();
var dateFuncName2Call = "datepicker" + x.toString();
$(dateFuncName).datepicker({dateFormat: 'yy-mm-dd'});
$("#name_data").append('<p>First Name: <input name="name['+x+'][first]" type="text"> Last Name: <input name="name['+x+'][last]" type="text"> Date: <input id="' + dateFuncName2Call + '" name="name['+x+'][date]" type="text"> <input id="remove'+x+'" type="button" name="remove" value="remove"></p>');
$("#remove"+x).click(function(){
$(this).parent('p').remove();
});
});
});
</script>
<form action="test.php" method="post">
<div id="name_data">
<p>First Name: <input name="name[0][first]" type="text">
Last Name: <input name="name[0][last]" type="text">
Date: <input id="datepicker" name="name[0][date]"></p>
</div>
<p><input id="add" type="button" name="add" value="Add more"></p>
<p><input type="submit" name="submit" value="Submit..."></p>
</form>
</html>
具体来说,我从之前的实现中了解到,对于 html 中的每个日期时间字段,我需要一个新的“#datetime”迭代(即#datetime2、3 等),这适用于预定义的字段数。
这就是我在这里尝试做的,特别是在上面代码的这一点上:
x++;
var dateFuncName = "#datepicker" + x.toString();
var dateFuncName2Call = "datepicker" + x.toString();
$(dateFuncName).datepicker({dateFormat: 'yy-mm-dd'});
请原谅这里 Jquery 的拙劣使用,但我现在真的是菜鸟 :D
提前感谢任何 guidance/advice :D
$(document).ready(function(){
var x = 0;
$("#datepicker").datepicker({dateFormat: 'yy-mm-dd'});
$("#add").click(function(){
x++;
var dateFuncName = "datepicker" + x.toString();
$("#name_data").append('<p>First Name: <input name="name['+x+'][first]" type="text"> Last Name: <input name="name['+x+'][last]" type="text"> Date: <input id="' + dateFuncName + '" name="name['+x+'][date]" type="text"> <input id="remove'+x+'" type="button" name="remove" value="remove"></p>');
$("#"+dateFuncName).datepicker({dateFormat: 'yy-mm-dd'});
$("#remove"+x).click(function(){
$(this).parent('p').remove();
});
});
});
如果您正在尝试克隆您的字段,这是可行的方法。
$(document).ready(function(){
$("#add").click(function(){
var $cloneFields = $("#name_data").clone(); // Clone your 3 inputs into a variable
$cloneFields.find(":input").val(''); // Clear the fields of this variable
$($cloneFields).insertAfter("#name_data"); // Insert your array of DOM elements after your cloned div
});
});