如何使用jquery submit()表单处理程序

时间:2014-04-15 14:58:33

标签: javascript jquery forms

我有以下表格:

<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代码不起作用。任何人都可以解释原因吗?

4 个答案:

答案 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

希望它有所帮助!

http://jsfiddle.net/hx2sH/

答案 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); 
    });
});