jsonfing 选择框选项
我有一个服务器端查询,它通常生成表单中的所有选择框选项
<option val='1'> text1 </option>
<option val='2'> text2 </option>
<option val='3'> text3 </option>
<option val='4'> text4 </option>
<option val='5'> text5 </option>
现在我想将所有这些转换为 jqgrid 可以理解其下拉列表的格式。即 {1:text1, 2:text2....} 条件是我不会触及服务器端代码。我需要在客户端通过添加通用函数来修改它。现在我通过 jquery ajax 调用得到这个
getGridDropDown: function (url) {
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function (html) {
$(html).find('option').each(function(key){
alert(key)
})
},
error: function () {
console.log("Error in ajax call to url: " + url);
}
});
},
现在我尝试了各种格式,唯一的方法看起来像使用 regexp 是唯一的方法。我不能将 html 返回变量作为 jquery 变量处理吗,我可以说 $this.val() + this.text()
I've a server side query which generically generated all select box options in the form
<option val='1'> text1 </option>
<option val='2'> text2 </option>
<option val='3'> text3 </option>
<option val='4'> text4 </option>
<option val='5'> text5 </option>
Now I want to convert all of this to a format that jqgrid understands for its dropdowns. i.e. {1:text1, 2:text2....} Condition is that I would not touch the server side code. I need to modify it here at client side by adding a generic function. Now I get this through an jquery ajax call
getGridDropDown: function (url) {
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function (html) {
$(html).find('option').each(function(key){
alert(key)
})
},
error: function () {
console.log("Error in ajax call to url: " + url);
}
});
},
Now I tried various formats, the only way looks like using regexp is the only way. Can't I handle the html return variable as a jquery variable, where I can say $this.val() + this.text()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您的服务器可以在
如果您的服务器只能生成
没有的列表code> 并且您无法更改服务器端的行为,您可以使用
buildSelect
来解决问题:(如果使用旧版本的 jqGrid,可能需要测试
typeof(data)
和使用data
或data.responseText
)还可能需要使用
ajaxSelectOptions: { cache: false }
(请参阅 此处)If your server can generate the list of
<options>
inside of<select>
you can use directlydataUrl
in the editoptions or searchoptions.If your server can only generate the list of
<options>
without<select>
and</select>
and you can't change the behavior on the server side you can usebuildSelect
to fix the problem:(in case of usage of old version of jqGrid it could be required to test the
typeof(data)
and usedata
ordata.responseText
)The usage of
ajaxSelectOptions: { cache: false }
could be also required (see here)要使用 find 返回的 html 需要一个有效的根元素。
尝试以下操作:
jsfiddle 上的示例
To use find the returned html needs a valid root element.
Try the following:
Example on jsfiddle
console.log(obj);//在控制台上输出您的信息...
我认为应该这样做,但修复选择器,以便您有
#select_tag_id选项
console.log(obj);//outputs your info... on your console
I think this, should do it, but fix the selector so u have
#select_tag_id option
这很安静,很容易。一个简单的技巧
/* jqgrid select options format */
谢谢你的回答
it was quiet easy. A simple trick did
/* jqgrid select options format */
Thank you for your answers