Javascript 通过json动态发送到服务器的表单数据是否不工作?
脚本代码:Javascript 通过json动态发送到服务器的表单数据是否不工作?,javascript,jquery,json,forms,Javascript,Jquery,Json,Forms,脚本代码: function submitdata(){ alert("hi"); //var formRequest = JSON.stringify($("#submitdatafrm").serializeArray()); var test = JSON.stringify({ "firstName": $('#fname'), "email":$('#email'), }); conso
function submitdata(){
alert("hi");
//var formRequest = JSON.stringify($("#submitdatafrm").serializeArray());
var test = JSON.stringify({
"firstName": $('#fname'),
"email":$('#email'),
});
console.log(test);
$.ajax({
type: "POST",
contentType: 'application/json',
url: "http://localhost:8080/formdataserver/rest/reqdemo/add",
data: test ,
dataType:"text",
success:successmethod,
error: function(data,status) {
alert("Error "+status);
}
});
}
function successmethod(data){
alert("sucess")
}
Html代码:
<form class="form-horizontal" id="submitdatafrm">
<div class="form-group">
<label class="col-md-4 control-label" for="fname">First Name</label>
<div class="col-md-6"><input id="fname" name="fname" type="text" placeholder="First Name" class="form-control input-md"></div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="email">Email</label>
<div class="col-md-6"><input id="email" name="email" type="email" placeholder="Email" class="form-control input-md"></div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="button"></label>
<div class="col-md-4"><a href="javascript:requestdemo();">Request a demo now</a></div>
</div>
</fieldset>
</form>
名字
电子邮件
在上面的代码中,当我静态地通过json传递值(硬编码值)时,它工作正常,值存储在数据库中。但是当我动态地传递值时(通过表单传递动态值)未传递值并显示错误警报消息??我在json代码中的错误是什么??请提供任何帮助…如何发送整个表单:
以下内容足以发送表单中的所有值:
data: $('#submitdatafrm').serialize()
您需要作为JSON发送有什么特别的原因吗?这会将名称/值转换为JSON:
data: JSON.stringify($('#submitdatafrm').serialize())
注意:您需要确保您的目标URL位于同一网站上,以避免跨网站问题(为什么您有绝对URL?)
您的示例数据使用的是firstname
,但输入名为fname
,因此可能只是输入错误,但没有很难看到的服务器代码:)
名字里有什么?
从您的类代码中,我看到服务器需要firstName
的值,因此如果您想简单地序列化
表单,您需要name=“firstName”
(而不是fname
):
可以将该动态值保存在变量中。然后使用这个变量。Giva a try.var fname=$(“#fname”);var test=JSON.stringify({“firstName”:fname,“email”:$('#email'),})@MayurRahul此过程不起作用。它根本不提交值。
“firstName”:$(“#fname”)
-您在这里没有读取输入字段的值,但只获取引用元素的jQuery对象。您需要使用获取字段的值。上面的代码在数据库中存储空值,而不是用户在表单中输入的值…并且在提交值后,文本字段(fname和email)不会被清除。1)您需要显示服务器代码以及可能存在的问题。2) 你为什么希望他们被清除?这是一个Ajax调用,因此您需要在提交成功后自己清除它们。3) 请显示您收到的错误文本:)当我们发送硬编码值示例var test=JSON.stringify({“firstName”:“Ramesh”,“email”:“Ramesh”时,服务器代码工作正常。suresh@gmail.com" }); 但是当使用动态值时,它不起作用。除了名称之外,没有区别。如果您显示您的服务器代码,我可以检查是否有明显的错误会导致它不匹配。(例如,fname
vsfirstname
。如果没有,我还有其他问题要回答:)您希望我显示哪个服务器代码或类??有很多服务器代码…实体类、实现类、接口或Web服务类??
<input id="fname" name="firstname" type="text" placeholder="First Name" class="form-control input-md">
var test = JSON.stringify({
"firstName": $('#fname').val(),
"email": $('#email').val(),
});