Jquery / Ajax表单在第二次单击时丢失隐藏的字段值

时间:2014-11-15 17:33:48

标签: jquery ajax forms submit

我有一个包含一些隐藏字段的表单,并且在页面加载时设置值。我有一个Ajax脚本,单击按钮提交表单。当我单击按钮时,它会提交表单,并在一些数据库检查后,电子邮件将发送到客户端。我收到一条消息,告知提交成功,隐藏字段的值在第一次提交之前显示如下:

<input type="hidden" name="propertyID" id="propertyID" value="1" />
<input type="hidden" name="uyeID" id="uyeID" value="10" />
<input type="hidden" name="referrerfile" id="referrerfile" value="Property For Sale" />

提交后,浏览器调试器上的值如下:

<input type="hidden" name="propertyID" id="propertyID" value="">
<input type="hidden" name="uyeID" id="uyeID" value="">
<input type="hidden" name="referrerfile" id="referrerfile" value="">

我不明白可能的原因是什么,但它无法进行数据库检查和发送电子邮件,因为这些字段没有任何价值。

点击按钮,这是我的Ajax脚本:

if(proceed) 
    {
        //data to be sent to server
        post_data = {'userName':user_name, 'userEmail':user_email, 'userPhone':user_phone, 'userMessage':user_message, 'imageverification':imageverification, 'propertyID':propertyID, 'uyeID':uyeID, 'referrerfile':referrerfile,  'departuredate':departuredate, 'arrivaldate':arrivaldate };

        //Ajax post data to server
        $.post('owner_contact.php', post_data, function(response){  

            //load json data from server and output message     
            if(response.type == 'error')
            {
                output = '<div class="error">'+response.text+'</div>';
                refresh_image();
            }
            else
            {
                output = '<div class="success">'+response.text+'</div>';

                //reset values in all input fields
                $('#contact_form input').val(''); 
                $('#contact_form textarea').val(''); 
            }

            $("#result5").hide().html(output).slideDown();
        }, 'json');

    } else {
        //$("#result").slideDown();
        refresh_image();
    }
});

知道问题是什么吗?

1 个答案:

答案 0 :(得分:1)

我认为代码中的$('#contact_form input').val('');只是重置包括隐藏字段在内的所有输入的值。试试没有这个。