使用jquery / Javascript拆分单选按钮值

时间:2014-04-06 21:24:52

标签: javascript jquery

我想从我的表单中拆分单选按钮值,这样我就知道选择的选项是什么,以及价格。 |之前的值separator是价格和|之后的值是选择的选项。

<input type="radio" name="arm" value="50|1" id="split" required> Option: 1<br>
<input type="radio" name="arm" value="100|2" id="split" required> Option: 2<br>
<input type="radio" name="arm" value="150|3" id="split" required> Option: 3<br>

<input type="radio" name="mechanism" value="50|1"> Option: 1<br>
<input type="radio" name="mechanism" value="100|2"> Option: 2<br>
<input type="radio" name="mechanism" value="150|3"> Option: 3<br>

<input type="radio" name="base" value="50|1"> Option: 1<br>
<input type="radio" name="base" value="100|2"> Option: 2<br>

<input type="radio" name="fabric" value="50|1"> Option: 1<br>
<input type="radio" name="fabric" value="50|2"> Option: 2<br>
<input type="radio" name="fabric" value="50|3"> Option: 3<br>

<script>

    jQuery(":text[name='quantity'], :radio[name='arm'], :radio[name='mechanism'], :radio[name='base'], :radio[name='fabric']").change(function(){
    var arm = jQuery(":radio[name='arm']:checked");
    var arr = arm.split('|');
    var $mechanism = jQuery(":radio[name='mechanism']:checked");
    var $base = jQuery(":radio[name='base']:checked");
    var $fabric = jQuery(":radio[name='fabric']:checked");
    var $quantity = jQuery(":text[name='quantity']");
    if($arm.length ==1){
        var a = parseInt($arm.val(arr[0]), 10);
        var m = parseInt($mechanism.val(), 10);
        var b = parseInt($base.val(), 10);
        var f = parseInt($fabric.val(), 10);
        var q = parseInt($quantity.val(), 10);
        jQuery("#result").val((a + m + b + f) * q);
    }
    });

</script>

我正在尝试使用以下方法拆分值:

var arm = jQuery(":radio[name='arm']:checked");
var arr = arm.split('|');

传递该值如下:

 var a = parseInt($arm.val(arr[0]), 10);

这不起作用。我不是Jquery或Javascript专家,我该怎么做才能使这项工作?

2 个答案:

答案 0 :(得分:1)

这一行:

var arr = arm.split('|');

您需要获取value的{​​{1}}并将其拆分。

arm

答案 1 :(得分:1)

尝试

var arm = jQuery(":radio[name='arm']:checked").val();

var arr = arm.split('|');