javascript - 输入中的条目一一应在结果字段中显示添加的结果

标签 javascript jquery

当用户在第一组中的单选按钮中选择任何选项,然后在相应的输入字段中输入任何数字,然后选择下一个任何单选选项并在输入字段中输入任何值时,这次应该将新结果与旧结果相加并将其显示在结果输入字段中,现在如果他清空任何输入字段,那么也应该从总结果中减去并将其显示在结果字段中。

我有很多这样的组,但在这里我只放了其中两个来获得结果。

此处 ID 为 FIDDLE

这是 jquery 代码。我可以在 jquery 中工作,但不是很好,我为每个组使用了单独的代码,我知道必须有一种方法可以通过通用代码获得整个功能,但我再次不擅长 jquery

 jQuery("#txt_im").keyup(setValue);
 jQuery('[name="rdbtn-im"]').change(setValue);

function setValue() {
var txt_value = jQuery("#txt_im").val();
var rad_val = jQuery('[name="rdbtn-im"]:checked').val();
if(!txt_value.length) {
    jQuery('#final_res').val('');
    return;        
}

if (!rad_val.length) return;
var res = txt_value * rad_val;
var final = parseInt(res, 10);
var MBresult = final / 1024;


jQuery('#final_res').val(MBresult.toFixed(2));

}

var final2 = 0;

jQuery("#txt_fb").keyup(setValue2); 
jQuery('[name="rdbtn-fb"]').change(setValue2);

function setValue2() {


var txt_value = jQuery("#txt_fb").val();

var rad_val = jQuery('[name="rdbtn-fb"]:checked').val();
 if(!txt_value.length) {
    jQuery('#final_res').val('');
     return;   
 }

if (!rad_val.length) return;
var res2 = txt_value * rad_val;
final2 = parseInt(res2, 10) + final;
var MBresult = final2 / 1024;
jQuery('#final_res').val(MBresult.toFixed(2));


}

事实上,用户可以自由选择任意数量的组,也可以在选择后自由删除任意数量的组。

我知道当用户在选择第一个组后选择第二组时, fiddle 会出现错误,它会删除错误的结果,我尝试解决它但失败了,但我定义了整个看到的我需要做什么。我将非常感谢你的好意。

最佳答案

HTML:

<table>
    <tr>
        <td>
            <input type="radio" name="rdbtn-im" id="rdbtn-im-day" value="25" class="rdbtn-style-social" />Daily&nbsp;
            <input type="radio" name="rdbtn-im" id="rdbtn-im-week" value="175" class="rdbtn-style-social" />Weekly
            <input type="text" name="txb3" id="txt_im" class="txt-email" style="width:100px;margin: 2px;" />
        </td>
    </tr>
    <tr>
        <td class="sec-td-rdbtns-social">
            <input type="radio" name="rdbtn-fb" id="rdbtn-fb-day" value="3500" class="rdbtn-style-social" />Daily&nbsp;
            <input type="radio" name="rdbtn-fb" id="rdbtn-fb-week" value="500" class="rdbtn-style-social" />Weekly
            <input type="text" name="txb1" id="txt_fb" class="txt-email" style="width:100px;margin: 2px;" />&nbsp;</td>
    </tr>
</table>
<br>result
<input type="text" name="final_res" id="final_res" class="" style="width:100px;margin: 2px;" />

Jquery:

jQuery(".txt-email").keyup(setValue);
jQuery('.rdbtn-style-social').change(setValue);

function setValue() {
    var total = 0;
    $(".rdbtn-style-social:checked").each(function () {
        var myInput = $(this).siblings(".txt-email").val();
        if (myInput.length) {
            total += myInput * $(this).val();
        }
    });
    if (total) {
        jQuery('#final_res').val((total / 1024).toFixed(2));
    } else {
        jQuery('#final_res').val('');
    }
}

FIDDLE

关于javascript - 输入中的条目一一应在结果字段中显示添加的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17315254/

相关文章:

javascript - 如何为动态添加的按钮添加点击监听器?

javascript - mori库的sortBy稳定吗?

javascript - 将 Prop 传递给组件 react-router 1.0.x

javascript - 如何防止用户使用 inspect element 来启用禁用的元素?

android - 如何检测 phonegap/cordova 中的 Android 后退按钮

javascript - jQuery FullCalendar 如何在不刷新页面的情况下在 ajax 调用后显示数据

javascript - noscript 标签内的文本将作为文本而不是表单输出

Javascript 对 HTML 表中的空值排序错误

javascript - 存储文本输入并显示在页面上

jquery - 发送一个简单的 GET 请求