我有一个jQuery函数,它接收div元素和json数组的id
function FormBuilder(selector,myList){
for (var i = 0 ; i < myList.length ; i++) {
var rowHash = myList[i];
if(rowHash['id'] > 0 ){
$(selector).append('<form id="DialerInfo">');
for (var key in rowHash) {
$(selector).append(key +': <input type="text" name="' + key + '" value="' + rowHash[key] + '"><br/>');
}
$(selector).append('</form>');
}
}
}
我希望这可以构建一个正确的表单,即所有输入都应该在<form>
和</form>
标记之间。但我收到了完全不同的东西:
首先去
<form id="DialerInfo"></form>
然后在所有输入字段下面。为什么它们不在表格标签之外? jQuery会自动关闭所有标签吗?那么如何防止这种行为呢?
答案 0 :(得分:3)
使用jQuery创建DOM不像字符串连接那样工作
您可以创建表单并将所有元素附加到其中
function FormBuilder(selector, myList) {
var $form = $('<form id="DialerInfo"></form>').appendTo(selector);
for (var i = 0; i < myList.length; i++) {
var rowHash = myList[i];
if (rowHash['id'] > 0) {
for (var key in rowHash) {
$form.append(key + ': <input type="text" name="' + key + '" value="' + rowHash[key] + '"><br/>');
}
}
}
}
答案 1 :(得分:1)
//使用
etc...
//它是一个jquery looper,它接受数组和json值并兼容所有浏览器而不是for循环