Javascript 限制输入字段不具有相同的输入

Javascript 限制输入字段不具有相同的输入,javascript,jquery,html,Javascript,Jquery,Html,我有一个HTML表格,里面有几个输入字段,iteName、unitQty和disc% ItemName是一个jquery自动完成字段,因此在选择文本后,焦点将转移到UnitQty上,然后当用户按enter键时,我将创建与上面相同的新行 在itemname列的新行中,我上面选择的内容也将出现,这是我不想要的 我得到的ItemNames来自JSON数据,因此当用户再次选择以前的数据时,我希望提示一个警报,该名称已经存在,并清空字段 我所做的 var itemNametd=[];var flag=

我有一个HTML表格,里面有几个输入字段,
iteName
unitQty
disc%

ItemName
是一个jquery自动完成字段,因此在选择文本后,焦点将转移到
UnitQty
上,然后当用户按enter键时,我将创建与上面相同的新行

itemname
列的新行中,我上面选择的内容也将出现,这是我不想要的

我得到的
ItemNames
来自JSON数据,因此当用户再次选择以前的数据时,我希望提示一个警报,该名称已经存在,并清空字段

我所做的

var itemNametd=[];var flag=  'Success';var Message="Success";
   $('input[name="itemNametd[]"]').each(function() {
        $(this).css("border", "");
        if ($(this).val() == '') {
            $(this).css("border", "1px solid red");
            flag = 'Error';
             Message="Please Enter Value"
        }else{
        if ($.inArray($(this).val(), itemNametd) != -1){
         $(this).css("border", "1px solid red");
         $(this).val('')
           Message="name is already present"
   flag = 'Error';
                        }else{
            itemNametd.push($(this).val())
            }

        }
    })

    if(flag=='Error'){
    alert(Message)
    return false
    }
“严格使用”;
控制台清除()
函数格式(数字,小数=2,区域设置='en-in'){
const fixed=parseFloat(数字).toFixed(小数);
常量[float,dec]=固定的.split('.'))
常量intFormatted=(+float).toLocaleString(区域设置)
返回INTFORMATED+(十二月?“.+十二月:”;
}
var CostPrice=“”;
var totalAmount=“”;
var单位数量=0;
var unitQuantityOnDisc=0;
var purchaseRateOnDisc=0;
var购买率=0;
var totalAmount=“”;
var百分比=”;
var discAmount=“”;
var totalAmountOnDisc=“”;
var小计DISC=0;
var gstPercentage=“”;
var gstAmount=“”;
var totalAmountOnGst=“”;
var合计=0;
var supplierCode=“”;
var TotalDiscountantMT=0;
var totalGstAmt=0;
var totalUnitQty=0;
var小计=0;
var totalAfterGrnDisc=0;
var totalRoundOff=0;
var totalAfterfreightAmt=0;
var TotalAfterCommissionMT=0;
var mrpOnDisc=0;
常数表数据={
“杏仁巧克力~2402”:{
“项目名称”:“杏仁巧克力”,
“项目代码”:“2402”,
“成本价格”:20.0,
“GST百分比”:14.5,
“mrp”:30.0
},
“一个BR SB EX~333”:{
“项目名称”:“一个BR SB EX”,
“项目代码”:“333”,
“成本价格”:1.0,
“GST百分比”:0.0,
“mrp”:1.0
}
}
var autoCompleteData=Object.keys(tableData);
函数行附加(tbody){
常量标记=
`
`
$(tbody).附加(标记);
setTimeout(()=>$(“[name=itemNametd]”,tbody.last().focus(),100);
$(“[name=itemNametd]”,tbody.last().autocomplete({
来源:自动完成数据
});
$(“[name=itemNametd]”)。更改(函数(){
if(autoCompleteData.indexOf($(this.val())=-1){
$(此).val(“”);
警报(“选择了正确的ItemName”)
返回false;
}
});
}
行附加($('tbody','#tableInvoice'))
函数getValues(行){
常量搜索=($('[name=itemNametd]',row.val()).toString()
常量值=表格数据[搜索];
CostPrice=value.CostPrice;
如果(值){
$(行).find(“[name=itemCodetd]”)val(value.itemCode);
$(行).find(“[name=mrptd]”).val(格式(value.mrp));
$(行).find(“[name=purRatetd]”).val(格式(CostPrice));
$(行).find(“[name=discAmttd]”)val(value.DiscAmt);
$(行).find(“[name=gstPercentagetd]”)val(value.gstPercentage);
}
/*$(“#unitQtytd”)。单击(函数(){
$(this.select();
}); */
}
函数计算(行){
unitQuantity=$(行).find(“[name=unitQtytd]”).val()| |“0”;
purchaseRate=$(行).find(“[name=purRatetd]”).val()| |“0”;
var mrp=$(行).find(“[name=mrptd]”)。text()| |“0”;
totalAmount=(parseFloat(单位数量)*parseFloat(购买率));
$(行).find(“[name=totalAmttd]”).val(格式(totalAmount));
}
函数calcDiscount(行){
unitQuantityOnDisc=$(行).find(“[name=unitQtytd]”).val()| |“0”;
purchaseRateOnDisc=$(行).find(“[name=purRatetd]”).val()| |“0”;
mrpOnDisc=$(行).find(“[name=mrptd]”).val()| |“0”;
小计DISC=(parseFloat(unitQuantityOnDisc)*parseFloat(purchaseRateOnDisc));
discPercentage=$(行).find(“[name=discPercentagetd]”).val()| |“0”;
gstPercentage=$(行).find(“[name=gstPercentagetd]”).val()| |“0”;
discAmount=(parseFloat(discPercentage)/100)*parseFloat(totalAmount)| 0
TotalAmountIndisc=(parseFloat(totalAmount)-parseFloat(discAmount))
gstAmount=(parseFloat(gstPercentage)/100)*parseFloat(totalamountndisc);
TotalAmountOnSt=(parseFloat(totalAmountOnDisc)+parseFloat(gstAmount))
total+=parseFloat(TotalAmountingST);
总折扣额+=总浮动额(discAmount);
totalGstAmt+=parseFloat(gstAmount);
TotalUnitQuantity+=parseFloat(unitQuantity);
小计+=parseFloat(小计Disc);
totalRoundOff=总计-数学四舍五入(总计);
$(行).find(“[name=discAmttd]”).val(格式(discamt));
$(行).find(“[name=gstAmttd]”).val(格式(gstAmount));
$(行).find(“[name=totalAmttd]”).val(格式(totalamountingst));
$(“#unitQtytf”).text(格式(totalUnitQty));
$(“#discamtt”).text(格式(totaldispentamt));
$(“#gstAmttf”).text(格式(totalGstAmt));
$(“#NetamInput”).val(格式(总计));
$(“#totalAmttf”).text(格式(总计));
$(“#小计”).val(格式(小计));
$(“#itemAmtDiscinput”).val(格式(totalDiscountAmt));
$(“#taxAmtInput”).val(格式(totalGstAmt));
//$(“#roundofffamtinput”).val(格式(totalRoundOff));
}
$(文档).on('focusout',(e)=>{
常量行=e.target.parentElement.parentElement
如果(e.target.matches(“[name=itemNametd]”){//当焦点从itemNametd中移出时
getValues(e.target.parentElement.parentElement)
}
});
$(document).keypress(function(event){//单击enter时,我正在尝试创建新行
常量行=event.target.parentElement.parentElement
var keycode=event.keycode | | event.which;
如果(键代码=='13'){
警报(“呈现”)
calcDiscount(event.target.parentElement.parentElement)
if($(行).parent().find('tr').length-$(行).index()==1){
rowappend(event.target.parentElement.parentElement.parentElement)
总数=0;
总折扣=0;
totalGstAmt=0;
totalUnitQty=0;
小计=0;
$(“#t