Javascript字数价格计算器

Javascript字数价格计算器,javascript,jquery,Javascript,Jquery,一切正常,除了定价计划选择的问题。我想要的是,每当用户点击一个指定的价格(即使文本已经出现在textarea中),它都应该立即更新最终价格。但它不会在第一次点击时改变 我应该点击两次。有人知道怎么了吗 下面是它的样子: 下面是javascript代码: function __textCalculatorCounter(){ var value = $('#calculateText').val(); var spanWords = $('#calculatedWordsTot

一切正常,除了定价计划选择的问题。我想要的是,每当用户点击一个指定的价格(即使文本已经出现在textarea中),它都应该立即更新最终价格。但它不会在第一次点击时改变

我应该点击两次。有人知道怎么了吗

下面是它的样子:

下面是javascript代码:

function __textCalculatorCounter(){

    var value = $('#calculateText').val();
    var spanWords = $('#calculatedWordsTotal'),
        spanChars = $('#calculatedCharsTotal'),
        spanPrice = $('#calculatedPriceTotal');


    if (value.length == 0) {
        spanWords.html(0);
        spanChars.html(0);
        return;
    }

    var selectedPricing = $("input[name=calculatePrice]:checked").val();
    var wordCount = value.trim().replace(/\s+/gi, ' ').split(' ').length;
    var totalChars = value.length;
    var totalPrice = (wordCount * parseFloat(Math.round(selectedPricing * 100) / 100));

    spanWords.html(wordCount);
    spanChars.html(totalChars);
    spanPrice.html(totalPrice.toFixed(2));
}

function _initTextCalculator(){
    var textblock = $('#calculateText');
    textblock.change(__textCalculatorCounter);
    textblock.keydown(__textCalculatorCounter);
    textblock.keypress(__textCalculatorCounter);
    textblock.keyup(__textCalculatorCounter);
    textblock.blur(__textCalculatorCounter);
    textblock.focus(__textCalculatorCounter);
    $('label', '#pricesGroup').click(__textCalculatorCounter);
}
==更新====

我不知道为什么,但它在JSFIDLE中运行良好。。。它与从html和javascript中提取的代码完全相同


所以,既然没有人知道答案,我就发了我的,解决了这个问题

问题在于Twitter的Bootstrap3单选按钮样式,这在与javascript一起使用时实际上是常见的问题

我已更改单选按钮的单击处理程序:

function _initTextCalculator(){
    var textblock = $('#calculateText');
    textblock.change(_textCalculatorTrigger);
    textblock.keydown(_textCalculatorTrigger);
    textblock.keypress(_textCalculatorTrigger);
    textblock.keyup(_textCalculatorTrigger);
    textblock.blur(_textCalculatorTrigger);
    textblock.focus(_textCalculatorTrigger);

    // Fixing bootstrap 3 radio buttons
    $("#pricesGroup label").on('click', function(){
        // Once clicked, mark current radio as checked
        $('input:radio', this).prop("checked", true);
        // Then call a function to calculate the price
        _textCalculatorTrigger();
    });
}
如前所述,单击单选按钮的父标签后,它会首先将属性“checked”指定给单选按钮,然后调用函数计算价格


感谢大家

介意用code?@RokoC.Buljan提供一个完整的测试用例吗?@RokoC.Buljan-马上就可以了请注意,
$('label','pricesGroup')
不会触发任何东西,因为它是一个错误的选择器,不会向它附加任何操作事件。这篇文章与您的JSFIDLE有区别。您的函数
\u initTextCalculator
在document ready内部启动。在这里,在你的问题代码中,它只是defined@pablito.aven抢手货当OP坚持“这是完全相同的代码”时,这意味着它可能不是相同的代码