从类似csv的字符串设置textfields值

时间:2015-01-22 06:51:47

标签: javascript jquery

有类似csv的字符串:

var ret = "21-01-2015|0|50|31-01-2015|0|0|5000000";

然后分隔符是“|”。

有HTML文本字段:

<input type="text" name="P_FIN_DECLARATION" id="P_FIN_DECLARATION" class="input-small datepick validate[required]"/>
<input type="text" name="P_TAUX_PENALITE" id="P_TAUX_PENALITE" maxlength="5" class="input-mini validate[required]"/>
<input type="text" name="P_TAUX_MAJORATION" id="P_TAUX_MAJORATION" maxlength="5" class="input-mini validate[required]"/>
<input type="text" name="P_LIMITE_PAIEMENT" id="P_LIMITE_PAIEMENT" class="input-small datepick validate[required]"/>
<input type="text" name="P_TAUX_1" id="P_TAUX_1" maxlength="5" class="input-mini validate[required]"/>
<input type="text" name="P_TAUX_2" id="P_TAUX_2" maxlength="5" class="input-mini validate[required]"/>
<input type="text" name="P_PLAFOND" id="P_PLAFOND" maxlength="50" class="input-small validate[required]"/>

字符串中的每个数据都与每个文本字段的序列完全匹配:例如,21-01-2015用于P_FIN_DECLARATION,依此类推。

如何从字符串的数据部分设置文本字段的值?

3 个答案:

答案 0 :(得分:2)

试试这个

var ret = "21-01-2015|0|50|31-01-2015|0|0|5000000".split('|');
// split function splits a string into an array

$('input').each(function (index) {
  $(this).val(ret[index]);
});

Example

答案 1 :(得分:2)

<强> P.S。你不需要JQuery来完成这个简单的任务!!

您可以这样做:

http://jsfiddle.net/t33553x2/

var ret = "21-01-2015|0|50|31-01-2015|0|0|5000000";
var fieldArr = document.getElementsByTagName('input');

var retArr = ret.split("|");
for(var i=0; i<fieldArr.length; i++) {
    var field = fieldArr[i];
    field.value = retArr[i];
}

答案 2 :(得分:0)

尝试使用.split()来实现与php爆炸相同的效果,并使用$.each轻松迭代数组,

var elems = $('input[type="text"]');

$.each("21-01-2015|0|50|31-01-2015|0|0|5000000".split('|'), function(i,val){
   elems.eq(i).val(val)
});

或者你可以这样做,

var arr = "21-01-2015|0|50|31-01-2015|0|0|5000000".split('|');

$('input[type="text"]').val(function(i){ 
    return arr[i]; 
});