我有一个javascript,只需点击一个按钮就可以将字符串222222222222222附加到另一个字段(可以是空白或已经有数字,如222222222222222 33333333333333)。实际上这是手机的15位IMEI。用户可以选择提交单个IMEI或批量IMEI。当通过按下myVar1中的按钮将多个IMEI添加到批量字段时,新的IMEI将插入到批量字段(myVar2)中的上一个IMEI下面。
目前,我正在使用以下脚本来执行此操作,并且它的工作非常好。问题是它在附加之前不会检查重复项。
function append_myVar1_to_myVar2(){
var myVar1 = document.getElementById('myVar1_value').value;
var myVar2 = document.getElementById('myVar2_value').value;
if(document.getElementById('myVar2_value').value == ''){
document.getElementById('myVar2_value').value = myVar1;
}else{
document.getElementById('myVar2_value').value = document.getElementById('myVar2_value').value + "\r\n" + myVar1;
}
}
我现在修改了脚本如下(更新以包括第一个响应,感谢Brian)检查重复项,但它不起作用。请专家查看。
function append_myVar1_to_myVar2(){
var myVar1 = document.getElementById('myVar1_value').value;
var myVar2 = document.getElementById('myVar2_value').value;
if(document.getElementById('myVar2_value').value == ''){
document.getElementById('myVar2_value').value = myVar1;
}else{
var flag = 0;
var wordsarr = myVar2.split("\r\n");
for(var i = 0; i < wordsarr.length; i++)
{
if(wordsarr[i].value == myVar1)
{
flag = 1;
}
}
if(flag == 1)
{
alert('Value is duplicate.');
}
else{
document.getElementById('myVar2_value').value = document.getElementById('myVar2_value').value + "\r\n" + myVar1;
}
}}
这是页面的html:
<html>
<body>
<input id="myVar1_value" type="text" maxlength="15" name="myVar1_value">
<input id="IMEI_ADD" class="button_gray" type="button" onclick="append_myVar1_to_myVar2()" value="Add this IMEI to bulk entry" name="IMEI_ADD">
<p id="imei_bulk_field" class="form-row notes">
<textarea id="myVar2_value" class="input-text" rows="2" cols="5" placeholder="If you have more than one IMEI, insert them here by pressing the button above." name="myVar2_value"></textarea>
</p>
</body>
</html>
答案 0 :(得分:2)
存储拆分的块,并迭代它们:
var chunkArray = myVar2.split("\r\n");
for(var i = 0; i !== chunkArray.length; i++){
if(chunkArray[i] == myVar1){
flag = 1;
break;
}
}
答案 1 :(得分:2)
for(var i = 0; i < (myVar2.split("\r\n")).length; i++)
{
//here is wrong
if(myVar2[i].value == myVar1)
{
flag = 1;
}
你应该改为
var wordsarr = myVar2.split("\n");
for(var i = 0; i < worsarr.length; i++)
{
if(wordsarr[i] == myVar1)
{
flag = 1;
}
}
if(flag == 1)
{
alert('Value is duplicate.');
}
答案 2 :(得分:1)
var myVar2 = document.getElementById('myVar2_value').value;
...的信
if(myVar2[i].value == myVar1)
看起来你不需要添加.value。尝试:
if(myVar2[i] == myVar1)
答案 3 :(得分:0)
这可能有所帮助
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i] == needle) return true;
}
return false;
}
您可以使用以下命令更改if:
haystack[i].value == needle