0

ユーザーがグループ1のラジオボタンで任意のオプションを選択し、それぞれの入力フィールドに任意の数字を入力してから、次の任意のラジオオプションを選択して入力フィールドに任意の値を入力すると、今度は古い結果に新しい結果を追加して表示する必要があります結果入力フィールドで、入力フィールドを空にすると、合計結果からマイナスして結果フィールドに表示する必要があります。

私はそのようなグループをたくさん持っていますが、ここでは結果を得るためにそれらのうちの2つを入れました.

こちらがフィドルです

ここに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));


}

実際、ユーザーは任意の数のグループを自由に選択でき、選択後に任意の数のグループを自由に削除することもできます。

ユーザーが最初のグループを選択した後に2番目のグループを選択すると、フィドルにエラーがあることを知っています。それは間違った結果を削除し、解決しようとしましたが失敗しましたが、何をする必要があるかを見て全体を定義します。このようなご好意に大変感謝いたします。

4

2 に答える 2

2

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;" />

Jクエリ:

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('');
    }
}

フィドル

于 2013-06-26T16:17:05.420 に答える