使用split,但只能得到第一个[0]值

时间:2012-03-05 08:09:51

标签: javascript arrays split

我在select选项中存储多个值,并尝试通过拆分值分别获取所有值。拆分似乎工作,因为我可以获得第一个[0]值,但在此之后我没有得到任何值。它以未定义的方式发出警报。代码如下。感谢。

function roi_calc(e) {
var merchant_option = $(e).prev('td').prev('td').prev('td').find('select').val();
if (merchant_option!='Merchant') {
    var value_input = $(e).prev('td').prev('td').find('input').val();
    if ((value_input!='') && (value_input!='Value')) {
        var price_input = $(e).prev('td').find('input').val();
         if ((price_input!='') && (price_input!='Price')) {
            alert ('Merchant value = '+merchant_option);
            //var price_arr = new Array();//tried setting array first, but same results
            var price_arr = price_input.split(',',3);
            //alert (price_arr);//alerts '1'
            alert (price_arr[0]);//working - alerts '1'
            alert (price_arr[1]);//not working - undefined
            alert (price_arr[2]);//not working - undefined
            }
            else {alert ('Price must be entered.');}
        }
        else {alert ('Value must be entered.');}
    }
    else {alert ('Merchant must be selected');}
//alert (row_option);

}

HTML

<table style="width: 600px;">
<tr>
<td>
    <select>
        <option>Merchant</option>
        <option value="1,2,3,4">1</option>
        <option value="5,6,7,8">2</option>
    </select>
</td>
<td><input value="Value"></td>
<td><input value="Price"></td>
<td onclick="roi_calc(this);"> R.O.I </td>
</tr>
</table>

在jsfiddle上 http://jsfiddle.net/upywN/

找到答案。我这个愚蠢的错误。
我正在拆分price_input,但需要分拆merchant_option愚蠢的错误,不好意思浪费每个人的时间。

2 个答案:

答案 0 :(得分:1)

这通常是无效的HTML

<option value="1,2,3,4">1</option>

查看option

的属性

相反,你应该像这样使用multiple select

<select multiple="multiple">

答案 1 :(得分:0)

更新:您正在捕捉'选定值'(即'1'而不是'1,2,3,4')表格

<option value="1,2,3,4">1</option>

但你必须将'text'分开(即'1,2,3,4')。

你可以使用Javascript抓取选项的'text'部分,如下所示:

var list = document.getElementById('list');  // 'list' is the id of select element
var text = list.options[list.selectedIndex].text;
//And now use your split
var price_arr = text.split(',',3);