我在数据元素中填充了一些字段名称。我正在尝试使用表单中的字段名称及其对应值形成一个查询字符串,以便在jquery ajax中使用。但是,以下代码对我不起作用。
$(".linkedfill").change(function(){
var params = $(this).data("select-params").split(",");
$.each(params, function(index,value){
pname = value.slice(value.IndexOf("["), value.IndexOf("]"));
pval = $(this).parents().find("[name='"+value+"']").val();
addparams = addparams + "&" + pname + "=" + pval;
});
});
字段名称将类似于header['fldname']
,并且字段可以在同一表单中的某个位置使用。 data-select-params类似于data-select-params="header['fld1'],header['fld2']"
。
更新:我的字段html如下所示:
<input name='header[fld1]' />
<input name='header[fld2]' />
<select class='linkedfill' name='pselect' data-select-params="header[fld1],header[fld2]">
<option value="opt1">Option 1</option>
<option value="opt2">Option 2</option>
</select>
尝试使用jquery的方法是获取header[fld1]
&amp;的值。 header[fld2]
并从数据中形成查询字符串。
任何人都可以帮我解决这个问题吗?提前谢谢。
答案 0 :(得分:1)
为什么不制作一系列参数,例如:
//if you need you can iterate the header[h1]..header[hn] push inside the function below
$('.linkedfill').data('select-params', ["header[h1]","header[h2]",...,"header[hn]"]);
然后使用
访问它$.each($('.linkedfill').data() , function() {
console.log($('.linkedfill').data());
// ..do your stuff..
})
这是一个小提琴http://jsfiddle.net/DgbRn/
答案 1 :(得分:0)
试试这个:
var data="header['fld1'],header['fld2']";
var params = data.split(",");
var addparams='';
$.each(params, function(index,value){
console.log(value.indexOf("['")+','+value.indexOf("']")+','+value);
pname = value.substring(value.indexOf("['")+2, value.indexOf("']"));
pval = $('form').find("header["+pname+"]").val();
addparams = addparams + "&" + pname + "=" + pval;
console.log(addparams);
});
小提琴: http://jsfiddle.net/Ju297/1/
我不知道你想要什么,但你可以简单地说,
var data="fld1,fld2";
var params = data.split(",");
var addparams='';
$.each(params, function(index,value){
pval = $('form').find("header["+value+"]").val();
addparams = addparams + "&" + value + "=" + pval;
console.log(addparams);
});