我正在尝试从表单中动态创建对象,但我希望省略一些reduntant元素,例如submit。
唯一的问题是我的功能不会省略这些字段。
function form_to_json(formname) {
var obj = new Object();
var identity = "#" + formname + " input";
// Create JSON strings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$(identity).each(function() {
if ($(this).val() != "Submit" || $(this).attr('name') != "password2") {
var propertyName = $(this).attr('name');
var propertyValue = $(this).val();
eval("obj." + propertyName + "='" + propertyValue + "'");
}
});
var jsonObj = JSON.stringify(obj);
return jsonObj;
}
输出吐出一个漂亮的小json对象唯一的问题是它没有省略我要求它的表单元素。
是否与选择器有关?
答案 0 :(得分:0)
好吧,我刚刚进行了头脑风暴,并尝试将if语句分成两部分......
if ($(this).val() != "Submit") {
if ($(this).attr('name') != "password2") {
var propertyName = $(this).attr('name');
var propertyValue = $(this).val();
eval("obj." + propertyName + "='" + propertyValue + "'");
}
}
这确实有效。
答案 1 :(得分:0)
你也可以单独使用if条件。您只需将OR条件更改为AND
即可if ($(this).val() != "Submit" && $(this).attr('name') != "password2") {