我有一个查询生成器窗体,允许用户输入值到字段中,一旦完成允许他们将输入的值传递到搜索字段。并非所有的字段都必须由表单中的用户完成。 HTML的如何只返回与jQuery有价值的字段
样品
<div id="advanceSearchCriteria">
<div class="searchHeader">Person</div>
<div class="contentBorders" id="person">
<div class="searchdiv">
<span class="smLabel">Last Name</span><br />
<input type="text" name="lastname" value="" size="15" />
</div>
<div class="searchdiv">
<span class="smLabel">First Name</span><br />
<input type="text" name="namefirst" value="" size="15" />
</div>
<div class="searchdiv">
<span class="smLabel">Middle Name</span><br />
<input type="text" name="namemiddle" value="" size="10" />
</div>
<div class="searchdiv">
<span class="smLabel">Suffix</span><br />
<input type="text" name="suffix1" value="" size="5" />
</div>
</div>
</div>
在jQuery的我创建了一个函数的字段的值传递到一个asp.net TextBox控件
function setAdvancedSearchString() {
checkField();
var txt = $("input[name='tbsearchterm']");
var fields = $("#advanceSearchCriteria :input").serializeArray();
jQuery.each(fields, function (i, field) {
if (txt) {
txt.val(txt.val() + field.name + ": " field.value + " ");
}
});
}
随着当前的方法此方法返回所有输入字段和他们的价值观。我想要的只是包含用户输入的序列化值并传递给搜索词的值的字段。例如,如果用户只输入姓氏,我只会喜欢那个字段名和返回的值(姓:詹姆斯)
我试过在var字段上测试null,但是我的语法错了,或者我正在测试null在错误的位置
到目前为止,我已经试过如下:
var fields = if($("#advanceSearchCriteria :input") != null)
{
$("#advanceSearchCriteria :input").serializeArray();
}
但是这似乎会导致编译错误。
任何人都可以提供一些帮助,如何序列化和返回输入值的字段名和值?
谢谢
感谢您的额外提示。作为一个侧面的问题是可以安全地假设,如果我不需要创建一个json对象数组/ join是更简单的方法。这似乎更通过jquery serializeArray我可读。 – rlcrews 2012-01-05 01:29:20
这取决于你。如果您不使用大数据集,那么可读性可能是您的首要任务。 – 2012-01-05 02:05:34