0

我在数据元素中填充了一些字段名称。我正在尝试用表单中的字段名称及其对应值形成一个查询字符串,以便在 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="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]&的值header[fld2]并从数据中形成一个查询字符串。

谁能帮我解决这个问题?提前致谢。

4

2 回答 2

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/

于 2013-05-14T08:38:35.853 回答
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);
});
于 2013-05-14T08:40:32.157 回答