需要帮助绑定添加的选项以选择列表

发布于 2024-11-06 04:41:20 字数 1076 浏览 1 评论 0原文

动态添加选项后,我需要禁用选择列表中的某些选项。

从另一个列表中选择项目时,我的选择列表是动态构建的。
该列表是在 PHP 中创建的,然后使用 $.ajax 调用返回到我的 javascript。 将选项添加到我的列表后,我需要循环遍历选项并禁用某些选项。

我可以添加选项,但无法禁用特定选项。我认为这是因为选项没有绑定到 DOM(或类似的东西)。

这是我现在使用的代码:

// HTML
<select id='selectlist_store' name='selectlist_store' size='6' multiple='multiple'></select>


// Javascript
// Populate store multi-select list
jQuery('#selectlist_city').live('change', function(){
  populateStoreListBox(jQuery(this).val(),  function(list) {
    // Add options to list
    jQuery('#selectlist_store').html(list);
    // Disable specific element
    jQuery('#selectlist_city option [value=56]').attr('disabled','disabled');
  });
});


function populateStoreListBox(country_id, callback){
  jQuery.ajax({
    url: (...),
    data: (...),
    dataType: 'html',
    success: (function(city_list) {
        callback(city_list);
  })
}); 

添加某些选项后,我需要做什么才能禁用它们?

一种解决方案可能会返回 JSON 数组而不是 HTML,然后循环遍历该数组并动态构建我的新选项列表并禁用我想要禁用的选项。

但还有别的办法吗?

I need to disable some options in a select list after I have dynamically added the options.

My select list is dynamically build when selecting an item from another list.
The list is created in PHP then returned to my javascript using $.ajax call.
Once the options are added to my list, I need to loop through the options and disable certain options.

I'm able to add the options, but I'm not able to disable specific options. I think this is becuase the options are not bound to the DOM (or something like that).

This is the code I use now:

// HTML
<select id='selectlist_store' name='selectlist_store' size='6' multiple='multiple'></select>


// Javascript
// Populate store multi-select list
jQuery('#selectlist_city').live('change', function(){
  populateStoreListBox(jQuery(this).val(),  function(list) {
    // Add options to list
    jQuery('#selectlist_store').html(list);
    // Disable specific element
    jQuery('#selectlist_city option [value=56]').attr('disabled','disabled');
  });
});


function populateStoreListBox(country_id, callback){
  jQuery.ajax({
    url: (...),
    data: (...),
    dataType: 'html',
    success: (function(city_list) {
        callback(city_list);
  })
}); 

What do I need to do in order to disable some options after I've added them?

One solution would maybe to return a JSON array instead of HTML, then loop through the array and dynamically build my new option list and disable the the options I want to disable.

But is there another way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心的憧憬 2024-11-13 04:41:20

之前的空格

jQuery('#selectlist_city option[value=56]').attr('disabled','disabled');

您需要删除 [ http://jsfiddle.net/pYBqm/

You need to remove the space before [

jQuery('#selectlist_city option[value=56]').attr('disabled','disabled');

http://jsfiddle.net/pYBqm/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文