在.click()函数中获取.change()函数的输出

时间:2014-08-04 13:22:32

标签: javascript jquery html forms

我有两个单选按钮,它们都有值。当选择一个并且点击按钮/链接时,需要将所选单选按钮的值输出到文本框。

这是我的HTML:

<form class="discount-choice" method="post" action="#">
    <ul>
        <li>
            <input type="radio" value="1" name="discount" id="1-month" class="discount-checkbox" />
            <label for="1-month">1 Month - no discount</label>
        </li>
        <li>
            <input type="radio" value="0.95" name="discount" id="4-months" class="discount-checkbox" />
            <label for="4-months">4 months - 5% discount</label>
        </li>
    </ul>
    <a href="#" class="get-result">Get Result</a>
    <input type="text" class="result" />
</form>

和我的JavaScript(jQuery):

var discount = $(".discount-checkbox").on("click", function () {
    return this.value;
});

$(".get-result").on("click", function() {
    $(".result").attr("value", discount);
});

单击按钮(选择单选按钮后),我只在文本框中显示[object Object]

我不确定将变量设置为jQuery函数的语法,所以这可能是我出错的地方。如果有人能给我一些很棒的指导。

感谢您的帮助:)

4 个答案:

答案 0 :(得分:3)

discount设置为$(".discount-checkbox")返回的jQuery对象。您需要绑定更新变量的单击处理程序:

var discount = 0;
$(".discount-checkbox").on("click", function () {
    discount = this.value;
});

答案 1 :(得分:1)

使用此:

$(".get-result").on("click", function(e) {
    e.preventDefault();
    $(".result").val( $('.discount-checkbox:checked').val() );
});

@billyonecan在评论中提及click上的checkbox处理程序。

并且......如果您确实需要将事件处理程序附加到checkboxes,那将是change事件处理程序而不是click

答案 2 :(得分:0)

无需折扣 - 复选框点击事件

$(".get-result").on("click", function() {
var discount = $(".discount-checkbox:checked").val();
$(".result").val(discount);

});

答案 3 :(得分:0)

试用此代码:

var discount; 
$(".discount-checkbox").on("click", function () {
discount= this.value;
});
$(".get-result").on("click", function() {
$(".result").attr("value", discount);
});