循环通过JSON对象并使用jQuery动态输出到textbox
我将下面的JSON对象返回给我,并希望更新页面上已经存在的两个文本框TXTSassigned01和TXTSassigned02的val。我知道我应该使用循环来实现这一点,但不确定如何在jQuery中动态选择文本框。任何帮助都将不胜感激 JSON对象: 迄今为止的代码:循环通过JSON对象并使用jQuery动态输出到textbox,jquery,json,Jquery,Json,我将下面的JSON对象返回给我,并希望更新页面上已经存在的两个文本框TXTSassigned01和TXTSassigned02的val。我知道我应该使用循环来实现这一点,但不确定如何在jQuery中动态选择文本框。任何帮助都将不胜感激 JSON对象: 迄今为止的代码: function getAssignedPerson(projectID) { $.ajax({ url: "view-requests.aspx/getAssignedPerson",
function getAssignedPerson(projectID) {
$.ajax({
url: "view-requests.aspx/getAssignedPerson", // Current Page, Method
data: JSON.stringify({
projectID: projectID
}), // parameter map as JSON
type: "POST", // data has to be POSTed
contentType: "application/json", // posting JSON content
dataType: "JSON", // type of data is JSON (must be upper case!)
timeout: 10000, // AJAX timeout
success: function (result) {
$.each(result, function (i, v) {
$('#txtAssigned0'+ v).val(result.d[i]); <--- here's my problem
});
},
error: function (xhr, status) {
alert(status + " - " + xhr.responseText);
}
});
}
如果要添加新文本框并命名,可以使用以下选项:
$('<input>').attr({type: 'text').val("YOUR_VALUE").appendTo('#ID_OF_SOME PARENT_DOM_OBJ')
您还可以添加更多内容,例如单击处理程序,例如
$('<input>').attr({type: 'text').val("YOUR_VALUE").appendTo('#ID_OF_SOME PARENT_DOM_OBJ').click(function(){alert('hello');});
其中main将是id为“main”的某个div,其中将显示文本字段
页面上有以下HTML:
<input id='txtAssigned01'/>
<input id='txtAssigned02'/>
因此需要循环结果对象中的数组d:
$.each(result.d, function (i, v) {
console.log(i);
console.log(v);
var x = i + 1;
$('#txtAssigned0'+ x).val(v); //<--- here's my problem
});
这是一个例子 你试过了吗。attrname,somename?我更新了我的问题。对不起,我解释得不好。文本框txtAssignedPerson01和txAssignedPerson02已经在页面上,我只想用JSON对象的循环更新它们的val。这有意义吗?原始代码段的唯一问题是,当您使用$时,每个索引都从0开始,因此您最好将文本框的ID更改为txtAssigned00和txtAssigned01,或者将+i更改为+i+1。此外,您的代码正在执行您想要的操作。
var result = {d:['test1', 'test2']};
$.each(result.d, function (i, v) {
console.log(i);
console.log(v);
var x = i + 1;
$('#txtAssigned0'+ x).val(v); //<--- here's my problem
});
<input id='txtAssigned00'/>
<input id='txtAssigned01'/>
$.each(result.d, function (i, v) {
$('#txtAssigned0'+ i).val(v);
});