我今天花了几个小时使用检查和单击方法陷入点击循环,尝试 ko.observable、pureComputed 写入甚至是基础设施更新检查框,但没有成功太久,无法向任何为我的工作付费的人解释为什么我无法检查该死的淘汰赛中的单选按钮。不幸的是,我的上下文(带有购买插件的 Magento 2 结帐)不允许我实现有效的视图模型,所以最后我设法通过简单的 hack 解决了这个问题,添加了第二个输入 type="radio" 并在点击时显示它:
selectRadioPayment: function (obj, event, method) {
this.selectPaymentMethod(obj, event, method);
$('.ko-payment-selector').show();
$('#p_method_' + method).hide();
$('#p_method_' + method).closest('.radio-payment-selector').show();
},
renderedPaymentMethods: function() {
if(quote.paymentMethod) {
var selectedMethod = quote.paymentMethod().method;
$('#p_method_' + selectedMethod).hide();
$('#p_method_' + selectedMethod).closest('.radio-payment-selector').show();
}
},
<input class="radio-payment-selector" type="radio" class="hidden" checked />
<input class="ko-payment-selector" type="radio" name="payment[method]" class="radio" event: {change: function(data, event){$parent.selectRadioPayment(data, event, $data.method)}}"/>
我希望有一天它会对某人有所帮助。