Html 取消选中绑定,没有默认值

Html 取消选中绑定,没有默认值,html,knockout.js,Html,Knockout.js,我正在使用Knockout处理web应用程序中的交互。我正在尝试创建一个选择题小部件。我想提出一个问题,然后是一组单选按钮,用户可以从中选择。我不想要默认答案 我的代码中包含以下内容: <!-- ko foreach: {data: answers, as: 'answer'} --> <li class="list-group-item"> <input type="radio" name="answers"

我正在使用Knockout处理web应用程序中的交互。我正在尝试创建一个选择题小部件。我想提出一个问题,然后是一组单选按钮,用户可以从中选择。我不想要默认答案

我的代码中包含以下内容:

 <!-- ko foreach: {data: answers, as: 'answer'} -->
  <li class="list-group-item">
    <input type="radio" 
           name="answers" 
           data-bind="checkedValue: answer, checked: $parent.current.problem.response">
    <span data-bind="mathjax: answer.value.text">1.5</span>
  </li>
 <!-- /ko -->

  • 1.5
  • 现在,淘汰赛文档显示:

    当用户更改选择的单选按钮时,KO将将模型属性设置为与所选单选按钮的值相等。在前面的示例中,单击value=“cherry”单选按钮会将viewModel.spamFlavor设置为“cherry”

    因此,根据文档,我的理解是,
    current.problem.response
    observable应该设置为
    answer
    对象。但是,它被设置为上的

    我想这是因为我的
    当前.problem.response
    最初是
    null
    。这对我的领域是有意义的。如果用户未进行选择,则应为空


    我该怎么办?

    看起来您的方案可行。也许问题不在现场。 这把小提琴演示了它的工作原理 打开控制台以查看所选选项

    演示视图模型看起来像

    var vm = {
        answers: [
            { text: 'ans1' },
            { text: 'ans2' },
            { text: 'ans3' },
            { text: 'ans4' }
        ],
        response: ko.observable(null)
    };
    
    vm.answer = vm.answers[0];
    
    vm.response.subscribe(function(value) {
        console.log(value);
    });
    
    根据模型对标记进行了一些修改

    <!-- ko foreach: {data: answers, as: 'answer'} -->
      <li class="list-group-item">
        <input type="radio" 
               name="answers" 
          data-bind="checkedValue: answer, checked: $parent.response" />
        <span data-bind="text: answer.text"></span>
      </li>
     <!-- /ko -->
    
    
    

  • 希望这能有所帮助。如果您还有其他问题,请在评论中详细说明。

    我认为应该可以解决,但我不明白为什么我的问题不起作用。不是将$parent.response设置为答案,而是将其设置为“on”。奇怪的不过谢谢你的帮助。你能把小提琴换成演示你案件的细节吗?我的意思是让它不适用于你的案子。你在问题中提供的东西看起来很像我放在小提琴里的东西。我想我们会这样发现问题。我把小提琴弄得乱七八糟,让它看起来更像我的小提琴(使用ko.mapping是最大的区别)。它还在那边工作。我注意到小提琴使用的是KO3.0。我的项目是2.3版的。我升级了,它看起来好像在工作!:)伟大的这似乎不属于所描述的情况。很高兴它被清除了。)如果您将答案标记为适用,我将不胜感激;)