Javascript 检查是否选中了任何复选框淘汰-PhoneJS

Javascript 检查是否选中了任何复选框淘汰-PhoneJS,javascript,jquery,web-applications,knockout.js,phonejs,Javascript,Jquery,Web Applications,Knockout.js,Phonejs,因此,在我的移动web应用程序(使用PhoneJS)中,我使用dxList来显示一些记录。我在每个列表“项”旁边都有一个复选框,以便我可以批量删除或发送记录。我需要知道如何确定是否选中了一个或多个复选框 我知道我可以用普通的Knockout来实现这一点,但我不知道PhoneJS框架实际上创建了一个“真正的”HTML复选框,而是创建了一个功能类似于复选框的可点击元素 因此,如果选中一个或多个复选框,我需要显示一个发送和删除按钮。我只需要知道如何确定是否有任何复选框 我已经在网上到处找过了,但是解决

因此,在我的移动web应用程序(使用PhoneJS)中,我使用dxList来显示一些记录。我在每个列表“项”旁边都有一个复选框,以便我可以批量删除或发送记录。我需要知道如何确定是否选中了一个或多个复选框

我知道我可以用普通的Knockout来实现这一点,但我不知道PhoneJS框架实际上创建了一个“真正的”HTML复选框,而是创建了一个功能类似于复选框的可点击元素

因此,如果选中一个或多个复选框,我需要显示一个发送和删除按钮。我只需要知道如何确定是否有任何复选框

我已经在网上到处找过了,但是解决方案是使用真正的复选框输入进行淘汰

以下是我的dxList代码:

<div data-bind="dxList:{dataSource: list_data, grouped:true }">
    <div data-options="dxTemplate:{name:'group'}">
        <b><span data-bind="text: $data.key"></span></b>
    </div>  
    <div data-options="dxTemplate:{name:'item'}">
        <span data-bind="text: $data.item_value"></span>
        <div data-bind="dxCheckBox: { }" style="float:right"></div>
    </div>   
</div>

我尝试将“checked”绑定到一个可观察数组,但这会影响所有复选框


有人能帮我吗?谢谢

最直接的MVVM方法是将选项数据绑定到列表项视图模型的布尔属性。然后,您可以迭代这些项并了解哪些项被选中

你提到你

已尝试将“已检查”绑定到可观察数组

不清楚为什么要将标量属性绑定到数组


实际上,它与纯HTML方法没有太大区别。您可以将PhoneJS小部件视为胖HTML标记。

因此,我有几乎相同的问题,但我认为我可以更清楚地了解我的需求

我有一个dxList,它使用SQLite表作为数据源。它的设置允许用户从模板列表中选择要应用于其他对象的模板。这个新的模板列表和关联的对象ID将保存在与原始数据不同的表中,因此,我需要能够识别列表中已检查的项目

<div data-bind="dxList: { dataSource: templateList }">
        <div data-bind="dxAction: ''" data-options="dxTemplate : { name: 'item' } ">
            <table>
                <tr>                      
                    <td>
                        <div data-bind="dxCheckBox: {  }"></div>
                    </td>
                    <td>
                        <div style="font-weight: bold; padding-left: 10px;" data-bind="text: TemplateName"></div>
                    </td>                   
                </tr>
            </table>
        </div>
    </div>
以及以下观点:

<div data-options="dxView : { name: 'SelectSurveys', title: 'SelectSurveys' } ">
    <div data-bind="dxCommand: { title: 'Save', id: 'create', action: saveSelections, icon: 'save' }"></div>
    <div data-options="dxContent : { targetPlaceholder: 'content' } ">
        <div data-bind="dxList: { dataSource: templateList, itemClickAction: selectTemplate }">
            <div data-options="dxTemplate : { name: 'item' } ">
                <div style="font-weight: bold; padding-left: 10px;" data-bind="text: SurveyName"></div>
            </div>
        </div>
    </div>
</div>

在对象中,我添加了一些颜色,这样您就可以知道选择了哪些对象,它不使用dxSwitch或复选框,但效果也很好,我认为它对用户来说更具视觉吸引力和信息性。

您是如何测试的?最糟糕的情况是,我会尝试使用firebug或开发人员工具等工具右键单击并检查复选框,查看哪个属性告诉它要检查,然后发出jquery调用,说找到“选中”的元素并对它们进行处理。@segFault如果需要,我会这样做,但如果可以的话,我希望有一个来自PhoneJS的内置解决方案
<div data-options="dxView : { name: 'SelectSurveys', title: 'SelectSurveys' } ">
    <div data-bind="dxCommand: { title: 'Save', id: 'create', action: saveSelections, icon: 'save' }"></div>
    <div data-options="dxContent : { targetPlaceholder: 'content' } ">
        <div data-bind="dxList: { dataSource: templateList, itemClickAction: selectTemplate }">
            <div data-options="dxTemplate : { name: 'item' } ">
                <div style="font-weight: bold; padding-left: 10px;" data-bind="text: SurveyName"></div>
            </div>
        </div>
    </div>
</div>
$.each(args.model.selectedTemplates(), function (index, value) {
    db.transaction(function (tx) {
        console.log("Inserting Data");
        tx.executeSql(sql, [value],
            function (t, result1) {
                if (result1 != null) {
                    console.log("New Item added." + result1.insertId);
                }
            },
            function (t, error) {
                console.log(error);
            });
    });