从类似 csv 的字符串设置文本字段值

Setting textfields value from a csv-like string

本文关键字:置文本 字段 字符串 csv      更新时间:2023-09-26

有一个类似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,依此类推。

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

试试这个

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]);
});

附言你不需要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];
}

尝试使用 .split() 来实现与 php 的 explode 相同的效果,并使用 $.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]; 
});