我有以下表格:
<form action="" method="POST" name="form" id="form">
<input name="year" type="text" id="year" placeholder="YYYY" size="4" maxlength="4">
<input name="month" type="text" id="month" placeholder="MM" size="2" maxlength="2">
<input name="day" type="text" id="day" placeholder="DD" size="2" maxlength="2">
<input name="hour" type="text" id="hour" placeholder="HH" size="2" maxlength="2">
<input name="minutes" type="text" id="minutes" placeholder="MM" size="2" maxlength="2">
<input name="seconds" type="text" id="seconds" placeholder="SS" size="2" maxlength="2">
<input name="sampleduration" type="text" id="sampleduration" size="4" maxlength="4">
<input type="hidden" name="sample" id="sample">
<input type="submit" name="submit" id="submit" value="Mark as reviewed">
</form>
在提交表单之前,我想连接一些表单字段并将其作为字符串提交。
字符串应如下所示:“2014-12-03 23:43:12”
字符串是上面各个表单字段的串联。
我创建了一个隐藏的表单字段“sample”,以便我可以在表单提交之前将连接的字符串分配给隐藏的表单字段。
表单提交后,php / mysql接管并将表单插入到mysql数据库中。
我看到的jQuery代码如下:
<script>
$( "#form" ).submit(function( event ) {
$('#sample').val(year+'-'+month+'-'+day+' '+hour+':'+minutes+':'+seconds); });
</script>
我的jQuery代码不起作用。任何人都可以解释原因吗?
答案 0 :(得分:3)
您的代码必须在$(document).ready块中才能收听您的提交事件 - 就像这样:
<script type="text/javascript">
$(document).ready(function () {
$("#form").submit(function (event) {
alert('submit is fired!');
});
});
</script>
希望以下页面可以帮助您:click here
答案 1 :(得分:3)
不要按原样使用变量。即年等。
用$('#'+idOfElement).val()
如果在创建DOM之前调用脚本,还要用$(document).ready()
包装代码。
答案 2 :(得分:2)
在Javascript中,如果没有首先实例化它们,则无法访问变量。 jQuery只不过是用Javascript编写的一堆代码库,它非常有用。
您尝试做的是访问year, etc...
,而不事先告诉Javscript这些变量是否存在。
您需要做的是var year;
首先告诉Javascript这些变量是否存在,以便在您的代码中引用它们。
这是指向您所需内容的示例代码的链接。查看代码中的注释,以了解每个部分正在做什么。
查看JS Fiddle的功能示例代码。您现在要做的就是将隐藏字符串的值设置为final_output
。
希望它有所帮助!
答案 3 :(得分:1)
以Amit的答案为例。
$(document).ready(function () {
$("#form").submit(function (event) {
var concatVals = $('#year').val()+'-'+$('#month').val()+'-'+$('#day').val()+'-'+$('#hour').val()+':'+$('#minutes').val()+':'+$('#seconds').val();
$('#representativeSampleLocation').val(concatVals);
});
});