JQuery/JavaScript 连接每个按键的输入值
JQuery/JavaScript concatenate Input values on each key down
我有一些输入字段 - 字段的数量是动态的 - 想将这些值连接到其他字段中。将 C01 到 N 的 id 拼接起来,存入 cNum 字段。请帮忙
<form class="cardForm" style="padding: 10px;"autocomplete="off" novalidate>
<div class="cardDiv">
<input type="hidden" id="C00" class="cardNum" value="" maxlength="1" />
<input type="text" id="C01" class="cardNum" value="" maxlength="1" autofocus/>
<input type="text" id="C02" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C03" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C04" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C05" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C06" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C07" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C08" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C09" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C10" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C11" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C12" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C13" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C14" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C15" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C16" class="cardNum" value="" maxlength="1"/>
</div>
<div>
<input type="text" id="cNum" class="cardNum" value="" maxlength="1"/>
<input type="text" id="cStatus" class="cardNum" value="" maxlength="1"/>
</div>
<button class="cardReset btn-link" type="reset" value="Reset"><u>Reset</u></button>
</form>
如果是我的话,我会给C01到C16一个额外的class类似
的东西
<input type="text" id="C01" class="cardNum cardVal" value="" maxlength="1"/>
<input type="text" id="C02" class="cardNum cardVal" value="" maxlength="1"/>
.
.
.
<input type="text" id="C16" class="cardNum cardVal" value="" maxlength="1"/>
然后
var finalString = "";
$(".cardVal").each(function(i, txt){
finalString += txt.val();
});
$("#cNum").val(finalString);
但如果你不想这样做,你可以这样做
var finalString = "";
$(".cardNum").each(function(i, txt){
if(txt.attr("id").indexOf("C") >= 0){
finalString += txt.val();
}
});
$("#cNum").val(finalString);
试试这个
var concatenatedValue = "";
$( ".cardNum" ).each( function(){
var id = $( this ).attr( "id" );
var number = id.substring(1);
if ( !isNaN( number ) )
{
concatenatedValue += $( this ).val();
}
} );
alert( concatenatedValue );
您可以尝试下面的代码或 运行 jsfiddle 上的解决方案,这是一种简单的方法。
说明:向上键时,它将连接所有以大写 'C' 开头的文本框的值,并将其生成 'cNum' text
$("input[id^=C]").keyup(function(e) {
var str = "";
$("input[id^=C]").each(function(index) {
str = str + $(this).val()
});
$("#cNum").val(str);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="cardForm" style="padding: 10px;" autocomplete="off" novalidate>
<div class="cardDiv">
<input type="hidden" id="C00" class="cardNum" value="" maxlength="1" />
<input type="text" id="C01" class="cardNum" value="" maxlength="1" autofocus/>
<input type="text" id="C02" class="cardNum" value="" maxlength="1" />
<input type="text" id="C03" class="cardNum" value="" maxlength="1" />
<input type="text" id="C04" class="cardNum" value="" maxlength="1" />
<input type="text" id="C05" class="cardNum" value="" maxlength="1" />
<input type="text" id="C06" class="cardNum" value="" maxlength="1" />
<input type="text" id="C07" class="cardNum" value="" maxlength="1" />
<input type="text" id="C08" class="cardNum" value="" maxlength="1" />
<input type="text" id="C09" class="cardNum" value="" maxlength="1" />
<input type="text" id="C10" class="cardNum" value="" maxlength="1" />
<input type="text" id="C11" class="cardNum" value="" maxlength="1" />
<input type="text" id="C12" class="cardNum" value="" maxlength="1" />
<input type="text" id="C13" class="cardNum" value="" maxlength="1" />
<input type="text" id="C14" class="cardNum" value="" maxlength="1" />
<input type="text" id="C15" class="cardNum" value="" maxlength="1" />
<input type="text" id="C16" class="cardNum" value="" maxlength="1" />
</div>
<div>
<input type="text" id="cNum" class="cardNum" value="" maxlength="1" />
<input type="text" id="cStatus" class="cardNum" value="" maxlength="1" />
</div>
<button class="cardReset btn-link" type="reset" value="Reset"><u>Reset</u></button>
</form>
可以监听class"cardNum"的keyup事件,将div"cardDiv"下的所有输入拼接起来,设置到输入框
这是工作示例。
$(".cardNum").keyup(function() {
var str = "";
$(".cardDiv .cardNum").each(function(){
str += $(this).val();
});
$("#cNum").val(str);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="cardForm" style="padding: 10px;"autocomplete="off" novalidate>
<div class="cardDiv">
<input type="hidden" id="C00" class="cardNum" value="" maxlength="1" />
<input type="text" id="C01" class="cardNum" value="" maxlength="1" autofocus/>
<input type="text" id="C02" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C03" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C04" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C05" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C06" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C07" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C08" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C09" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C10" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C11" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C12" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C13" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C14" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C15" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C16" class="cardNum" value="" maxlength="1"/>
</div>
<div>
<input type="text" id="cNum" class="cardNum" value="" maxlength="1"/>
<input type="text" id="cStatus" class="cardNum" value="" maxlength="1"/>
</div>
<button class="cardReset btn-link" type="reset" value="Reset"><u>Reset</u></button>
</form>
我有一些输入字段 - 字段的数量是动态的 - 想将这些值连接到其他字段中。将 C01 到 N 的 id 拼接起来,存入 cNum 字段。请帮忙
<form class="cardForm" style="padding: 10px;"autocomplete="off" novalidate>
<div class="cardDiv">
<input type="hidden" id="C00" class="cardNum" value="" maxlength="1" />
<input type="text" id="C01" class="cardNum" value="" maxlength="1" autofocus/>
<input type="text" id="C02" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C03" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C04" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C05" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C06" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C07" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C08" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C09" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C10" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C11" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C12" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C13" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C14" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C15" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C16" class="cardNum" value="" maxlength="1"/>
</div>
<div>
<input type="text" id="cNum" class="cardNum" value="" maxlength="1"/>
<input type="text" id="cStatus" class="cardNum" value="" maxlength="1"/>
</div>
<button class="cardReset btn-link" type="reset" value="Reset"><u>Reset</u></button>
</form>
如果是我的话,我会给C01到C16一个额外的class类似
的东西<input type="text" id="C01" class="cardNum cardVal" value="" maxlength="1"/>
<input type="text" id="C02" class="cardNum cardVal" value="" maxlength="1"/>
.
.
.
<input type="text" id="C16" class="cardNum cardVal" value="" maxlength="1"/>
然后
var finalString = "";
$(".cardVal").each(function(i, txt){
finalString += txt.val();
});
$("#cNum").val(finalString);
但如果你不想这样做,你可以这样做
var finalString = "";
$(".cardNum").each(function(i, txt){
if(txt.attr("id").indexOf("C") >= 0){
finalString += txt.val();
}
});
$("#cNum").val(finalString);
试试这个
var concatenatedValue = "";
$( ".cardNum" ).each( function(){
var id = $( this ).attr( "id" );
var number = id.substring(1);
if ( !isNaN( number ) )
{
concatenatedValue += $( this ).val();
}
} );
alert( concatenatedValue );
您可以尝试下面的代码或 运行 jsfiddle 上的解决方案,这是一种简单的方法。 说明:向上键时,它将连接所有以大写 'C' 开头的文本框的值,并将其生成 'cNum' text
$("input[id^=C]").keyup(function(e) {
var str = "";
$("input[id^=C]").each(function(index) {
str = str + $(this).val()
});
$("#cNum").val(str);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="cardForm" style="padding: 10px;" autocomplete="off" novalidate>
<div class="cardDiv">
<input type="hidden" id="C00" class="cardNum" value="" maxlength="1" />
<input type="text" id="C01" class="cardNum" value="" maxlength="1" autofocus/>
<input type="text" id="C02" class="cardNum" value="" maxlength="1" />
<input type="text" id="C03" class="cardNum" value="" maxlength="1" />
<input type="text" id="C04" class="cardNum" value="" maxlength="1" />
<input type="text" id="C05" class="cardNum" value="" maxlength="1" />
<input type="text" id="C06" class="cardNum" value="" maxlength="1" />
<input type="text" id="C07" class="cardNum" value="" maxlength="1" />
<input type="text" id="C08" class="cardNum" value="" maxlength="1" />
<input type="text" id="C09" class="cardNum" value="" maxlength="1" />
<input type="text" id="C10" class="cardNum" value="" maxlength="1" />
<input type="text" id="C11" class="cardNum" value="" maxlength="1" />
<input type="text" id="C12" class="cardNum" value="" maxlength="1" />
<input type="text" id="C13" class="cardNum" value="" maxlength="1" />
<input type="text" id="C14" class="cardNum" value="" maxlength="1" />
<input type="text" id="C15" class="cardNum" value="" maxlength="1" />
<input type="text" id="C16" class="cardNum" value="" maxlength="1" />
</div>
<div>
<input type="text" id="cNum" class="cardNum" value="" maxlength="1" />
<input type="text" id="cStatus" class="cardNum" value="" maxlength="1" />
</div>
<button class="cardReset btn-link" type="reset" value="Reset"><u>Reset</u></button>
</form>
可以监听class"cardNum"的keyup事件,将div"cardDiv"下的所有输入拼接起来,设置到输入框
这是工作示例。
$(".cardNum").keyup(function() {
var str = "";
$(".cardDiv .cardNum").each(function(){
str += $(this).val();
});
$("#cNum").val(str);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="cardForm" style="padding: 10px;"autocomplete="off" novalidate>
<div class="cardDiv">
<input type="hidden" id="C00" class="cardNum" value="" maxlength="1" />
<input type="text" id="C01" class="cardNum" value="" maxlength="1" autofocus/>
<input type="text" id="C02" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C03" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C04" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C05" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C06" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C07" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C08" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C09" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C10" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C11" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C12" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C13" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C14" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C15" class="cardNum" value="" maxlength="1"/>
<input type="text" id="C16" class="cardNum" value="" maxlength="1"/>
</div>
<div>
<input type="text" id="cNum" class="cardNum" value="" maxlength="1"/>
<input type="text" id="cStatus" class="cardNum" value="" maxlength="1"/>
</div>
<button class="cardReset btn-link" type="reset" value="Reset"><u>Reset</u></button>
</form>