使用Jquery提交表单:提交NULL

时间:2014-05-28 11:52:21

标签: jquery jsp

表单提交时遇到问题。表单是使用Jquery构建的,然后数据被传递到另一个页面,其中我

<%String userEmail="blabla@bla.com";%>
<script>
$form = $("<form id='frm' action='submit.jsp' method='post'>");
$form.append(" <input id='userEmail' name='userEmail' class='input' value=<%=userEmail%> type='hidden'  /> ");
$form.append("Enter a barcode: "); 
$form.append(" <input id='bcode' name='bcode' class='input' type='number' size='12' required/> <br/> ");
$form.append('Enter a price: ');
$form.append("<input id='price' class='input' name='price' type='number' size='12' required/> <br/></form>");
$("#form").append($form);

然后,当&#34;提交&#34;按下按钮(带有id =&#34;提交&#34;):

$(".next").on("click", "#submit", function () {  
$("#frm").submit();
});
</script>

然后在submit.jsp:

<%
String price = request.getParameter("price"); //problem
String barcode = request.getParameter("bcode"); //problem
String userEmail = request.getParameter("userEmail");
form frm = new form();
insRes = frm.insertEvent(price, barcode, userEmail); 
%>

问题是我得到的是NULL而不是&#34;价格&#34;和&#34;条形码&#34;。电子邮件字段正常。

P.S。是的,我对编程非常陌生,我自己使用书籍和谷歌学习。 在这里搜索了类似的问题,没有找到。对不起,如果我错过了。

编辑:

我在提交前序列化了表单,唯一提交的是电子邮件。为什么?我用jquery形成表单是否重要?

2 个答案:

答案 0 :(得分:0)

我找到了导致问题的原因。 在用户输入条形码和价格后,我检查输入是否正常,如果确定,我阻止用户通过添加以下内容来更改它们:

$("#price").attr("disabled", "disabled");
$("#bcode").attr("disabled","disabled");

当我评论这两行时,问题就解决了。

很抱歉没有提供整个代码 - 我认为这不重要。 谢谢大家!

答案 1 :(得分:-1)

我认为你误用了某些东西。 我已更正您的代码并发送数据。当然,在发送表单之前,你应该在输入中加入一些值。

$(document).ready(function(){

var email = 'blabla@bla.com';

var $form = $("<form id='frm' action='submit.jsp' method='post'>");
$form.append(" <input id='userEmail' name='userEmail' class='input' value="+ email +" type='hidden'  /> ");
$form.append("Enter a barcode: "); 
$form.append(" <input id='bcode' name='bcode' class='input' type='number' size='12' required/> <br/> ");
$form.append('Enter a price: ');
$form.append("<input id='price' class='input' name='price' type='number' size='12' required/> <br/></form>");
$("#form").append($form);


    $(document).on("click", ".next", function () {
        console.log('send');
        $("#frm").submit();
    });
})

See it working.