0

私はjqueryを少し学んでいるので、ここでこのフィドルを作成しましたhttp://jsfiddle.net/8FXFE/17/

これは私のHTMLコードです

<div class="textForm">
<input type="radio" name="txtNumber" value="100" checked="checked" />100
<input type="radio" name="txtNumber" value="200" />200
<input type="radio" name="txtNumber" value="500" />500
<input type="radio" name="txtNumber" value="1000" />1000
<input type="radio" name="txtNumber" value="10000" />10000
<input type="radio" name="txtNumber" value="other" />other
<input type="text" name="other_field" id="other_field" onblur="checktext(this);"
/>
</div>
<div class="formText">
    <input type="radio" name="txtSpace" value="RJ" checked="checked"
    />Space 1.
    <br />
    <input type="radio" name="txtSpace" value="SM" />Space 2.
    <br />
</div>

<h3>Output:</h3>

これはcssです

#other_field {
 display: none;
}

これはjqueryです

$(document).ready(function () {
console.log("parsed");
$("input[name='txtNumber'],input[name='txtSpace']").change(function () {
    $("#output").text("Changed to "+$("input[name='txtNumber']:checked").val() + " "                                    +$("input[name='txtSpace']:checked").val() + " +++++SOME FIXED VALUE OF TXTSPACE (i.e. SAY if RJ = 100 or if SM = 50) x VALUE OF TXTNUMBER++++++"
                    ); 
});
});

$(':radio').on('change', function () {
$('#other_field')[$(this).val() === 'other' ? 'show' : 'hide']();
});

$('#other_field').on('blur', function () {
var val = $(this).val();

if(isNaN(val)) {
alert('only numbers are allowed..');
}
else if(parseInt(val, 10) % 10 > 0) {
alert('only multiples of 10..');
}
});

+++++++++++内の大文字で示されている実際の出力を達成するにはどうすればよいですか?TXTSPACEのいくつかの固定値(つまり、RJ=100またはSM=50の場合)xTXTNUMBERの値

また、非表示のother_fieldの動的な値を追加するにはどうすればよいですか(選択した場合)

4

1 に答える 1

0
var value = $("input[name='txtNumber']:checked").val();
if(value == "other"){
    value = parseInt($("#other_field").val());
}
if(!value || isNaN(value)) value = 0;
var type = $("input[name='txtSpace']:checked").val();
var fixedMultiplier;
switch(type){
    case "RJ": fixedMultiplier = 100; break;
    case "SM": fixedMultiplier = 50; break;
    default: fixedMultiplier = 1; break;
}
var computedValue = value * fixedMultiplier;
$("#output").text("Changed to "+ value + " " + type + " (" + computedValue + ")");

http://jsfiddle.net/8FXFE/19/

キーアップ時の出力を更新するには、テキストフィールドにハンドラーを追加する必要があるかもしれません。

于 2013-02-10T13:44:24.397 に答える