jquery从单选按钮发送2个值

时间:2013-11-29 05:35:32

标签: javascript jquery html

我一直在努力工作8个小时尝试不同的脚本像:if / else,创建2个名称和值,创建名称和值的“隐藏”输入,创建javascript但是jquery刹车,这就是我的意思感谢@Mood http://jsfiddle.net/LZ5Uz/4/:现在我需要发布的第一个变量是“金额”(我有那个),但我需要从同一个收音机发送“重复”。例如:

   <input name="amount" id="result" type="hidden" />//Here I will send the variable "amount"

现在我正在尝试变量“重复”:

   <input id="q" type="radio" name="presets,recurring" class="q" value="12,Quarterly" />Quarterly
   <labels id="choice_q" class="q"></label> //JQuery break 

尝试:

   $('input:radio[name="presets"]').change(
function(){
    if ($(this).is(':checked') && $(this).val() == 'monthly') {

    }
});

我是一个菜鸟...我需要发送的变量和值是:(变量 - &gt;)name =“recurring”(值 - &gt;)第一个收音机被检查=“每月”秒radio checked =“quarterly”third radio checked =“year”

1 个答案:

答案 0 :(得分:0)

Demo jsFiddle

<强>描述

为了解决上述问题,我使用 knockoutjs ,原因是这是针对此类UI(UX)的。 jQuery不适用于这种类型的设计。

<强> HTML

<div>
    <input id="amount" type="number" data-bind="value: Amount" />
</div>
<div>
    <input id="m" type="radio" name="presets" value="0" data-bind="checked: RecurringOption, value: Option1" />
    <label for="m" id="choice_m" data-bind="text: Option1"></label>
    <input id="q" type="radio" name="presets" value="1" data-bind="checked: RecurringOption, value: Option2" />
    <label for="q" id="choice_q" data-bind="text: Option2"></label>
    <input id="y" type="radio" name="presets" value="2" data-bind="checked: RecurringOption, value: Option3" />
    <label for="y" id="choice_y" data-bind="text: Option3"></label>
</div>
<input id="result" type="text" readonly="readonly" />
<input id="recurringOption" type="hidden" data-bind="value: RecurringOption" />

<强> JS

// This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI
function AppViewModel() {
    var self = this;
    this.Amount = ko.observable(50);
    this.RecurringOption = ko.observable();
    this.Option1 = ko.computed(function () {
        if (self.Amount() != null) return (parseFloat(self.Amount(), 10) / parseFloat(36, 10)).toFixed(2);

        return 0;
    }, self);
    this.Option2 = ko.computed(function () {
        if (self.Amount() != null) return (parseFloat(self.Amount(), 10) / parseFloat(12, 10)).toFixed(2);

        return 0;
    }, self);
    this.Option3 = ko.computed(function () {
        if (self.Amount() != null) return (parseFloat(self.Amount(), 10) / parseFloat(3, 10)).toFixed(2);

        return 0;
    }, self);
}

$(function () {
    // Activates knockout.js
    ko.applyBindings(new AppViewModel());

    $("input[name='presets']").change(function () {
        var id = $("input:checked").attr("id");
        $("#result").val($('#' +id).val());
    });
});