如何根据动态值选择列表

Posted

技术标签:

【中文标题】如何根据动态值选择列表【英文标题】:How to select the list based on its dynamic value 【发布时间】:2014-02-10 13:50:09 【问题描述】:

我是淘汰赛的新手。我希望当我根据值单击编辑按钮时,应选择下拉菜单。

这是我的完整代码...我正在尝试编辑记录...

这是我的 html 代码

这是我的 JS 代码...

功能项(id, name) this.id = ko.observable(id);

    this.name1 = ko.observable(name);

函数 CompanyViewModel()

var self = this; var 排序 = "desc";

    self.id = ko.observable("");
    self.name = ko.observable().extend

( 要求:真 ); self.bloombergcode = ko.observable().extend( required: true );

    self.Id = ko.observable();

    self.sector1 = [new item(1, "Banking"), new item(2, "Non-Banking")];

    self.country = ko.observableArray([]);

    self.sectorid = ko.observable().extend( required: true );

    self.isincode = ko.observable();
enter code here
    self.address = ko.observable();

    this.validationModel = ko.validatedObservable(
        name: self.name,
        bloombergcode: self.bloombergcode,
        sectorid: self.sectorid

    );



    //        self.items = ko.observableArray([]);
    var company =

    id: self.id,
    name: self.name,
    bloombergcode: self.bloombergcode,
    sectorid: self.sectorid,
    isincode: self.isincode,
    sector1: self.sector1,
    address: self.address
;

    self.company = ko.observable();
    self.companies = ko.observableArray();


    $.ajax(
        url: '@Url.Action("CompanyId", "Company")',
        cache: false,
        type: 'GET',
        contentType: 'application/json; charset=utf-8',
        data: ,
        success: function (data) 

            //self.companies(data);
            self.company(data); 

            self.id(data.id);

            self.name(data.name);

            self.sectorid = ko.observable(new item(data.sectorid, ""));

            self.isincode(data.isincode);

            self.address(data.address);

            self.sectorid(self.sector1[1].id);

           // self.sectorid(self.sector1[1]);


            self.bloombergcode(data.bloombergcode)
        
    );

var viewModel=new CompanyViewModel(); ko.applyBindings(viewModel);

【问题讨论】:

这个问题有什么进展吗?您是否尝试实施我的解决方案?如果您还有其他问题,请告诉我。 您的 HTML 代码丢失了,而且您的代码真的很难阅读,因为有些代码超出了代码区域。请为我们这些试图帮助您解决问题的人考虑。多一点努力将不胜感激。 我的 Html 代码已经完成了...只有一个功能在外面。请告诉我您期望我付出什么样的努力...? 请有人帮我... 【参考方案1】:

由于您提供了optionsValue 参数,您需要将sectored 设置为id 值。换句话说:

self.sectorid(self.sector[1].id());

另外,您的绑定声明不正确。您在 optionsValue 参数上缺少 id 周围的引号。如:

<select id="sector" data-bind="options:sector1 , validationElement: sectorid, valueUpdate: 'afterkeydown', optionsValue:'id', optionsCaption: '........Select........', value: $root.sectorid, optionsText: 'name1' "></select>        

希望有帮助!

附:为了澄清,不提供optionsValue,敲除将使用实际对象作为值。在这种情况下,您最初的代码 self.sectorid(self.sector[1]) 会按预期工作。

【讨论】:

感谢您的帮助...但它仍然无法正常工作...及其 self.sectorid(self.sector1[1].id); 请参阅上面已编辑答案中对绑定声明的更正。 我在回答中发现了一个问题。我错过了id observable 的执行。看看更新的答案是否不适合你。 如果仍然无法解决问题,您可以使用 JS 代码和 HTML 的当前状态更新您的帖子吗?据我所知,它应该可以工作,但我想看看你的代码,看看我是否能发现任何错误。

以上是关于如何根据动态值选择列表的主要内容,如果未能解决你的问题,请参考以下文章

如何动态更新选择源数据

iOS Swift如何根据下拉列表中的选择显示动态用户界面

如何根据选项类动态过滤 select2 列表

如何设置动态下拉列表的选定值

如何创建多个从同一个数组中获取值的动态下拉列表,而无需更改 Javascript 中的其他下拉列表

当每个下拉列表动态创建ID时,jquery选择选项数据和值[关闭]