gpt4 book ai didi

javascript - 如何通过 FORM 为 jquery ajax 变量提供值?

转载 作者:行者123 更新时间:2023-11-30 12:55:45 26 4
gpt4 key购买 nike

如何修改以下内容,使 forminput 成为接受用户输入的文本区域表单框,而不是像现在这样硬编码?

提交表单后,它将在以下代码中填充表单输入:

data: JSON.stringify({json:*forminput*}), 

在文本区域框中,数据将被粘贴到与下面的 javascript 中完全相同的位置。

<html>
<head>
<title></title>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">

$(document).ready(function () {
$("#postit").on("click", function () {

var forminput = [{
"field1":"100",
"field2":"2000",
"field3":"400",
},
{
"field1":"110",
"field2":"2200",
"field3":"520"
}];


$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://localhost/capturedata",
data: JSON.stringify({json:forminput}),
dataType: 'json',
success: function (data) {

}
});
});
});
</script>
<a href="#" id="postit">Submit</a>

</body>
</html>

最佳答案

整个想法没有意义,因为用户可能输入了一个无效的 JSON 值。在问题中,您说 “数据将完全按照下面 javascript 中的原样粘贴” - 但如果不是呢?或者,如果用户输入的内容有效的 JSON 但不是远不是您期望的格式怎么办?用户可能会输入 {"this":"is valid json"} 它会被接受并提交,但不是您的服务器所期望的。

话虽如此,要从字面上理解您的要求,您可以通过在页面的某处添加以下内容来实现它:

<textarea id="forminput"></textarea>

然后在您的 JS 函数中,您可以通过以下方式获取值:

var forminput = $("#forminput").val();

...这将为您提供字符串形式的值。如果您想将其用作对象,就像您使用问题中当前显示的 forminput 变量一样,它需要是:

var forminput = $.parseJSON( $("#forminput").val() );

因此,为了解决我关于用户输入无效值的观点,您可以这样做:

try {
var forminput = $.parseJSON( $("#forminput").val() );
// use forminput
} catch (e) {
alert("Invalid input: " + e.message);
}

...但即使这样也只会捕获一般的无效 JSON 错误,它不会捕获用户输入错误格式的有效 JSON 的情况。

关于javascript - 如何通过 FORM 为 jquery ajax 变量提供值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19216665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com