JQuery中的条件不起作用

Condition in JQuery not working

本文关键字:不起作用 条件 JQuery      更新时间:2023-09-26

我们正在为一个项目工作的公司要求我们在打印给定上下文的情况下自动执行销售合同。但是,一些变量将通过键盘输入。首先,我们提出了这样一个想法,即他们可以在打印5页合同之前填写一份表格,并获得表格数据,并在必要时使用。然而,他们希望看到整个合同,并在必要时填补空白。所以我的解决方案就像下面这个例子。

这是ACME公司和Stackoverflow公司的销售表格负责人_____许可证号:______

这样下去。使用了5-6个空格,当操作员点击它们时,我将它们更改为输入,以便用户在必要时输入,当点击时,输入空格将被输入数据取代。代码低于

HTML

<ol type="A">
   <li>Условия за плащане по ранни записвания: <i class='veriRengi'>20% 12/12/2016</i></li>
   <li>Капаро в размер на не по-малко от <i class='fillThis veriRengi' id='DepositPercent' onclick='alanDoldur(DepositPercent)'>_____</i> % на човек, съобразно условията на конкретната програма.
      <br>Резервация се прави само след заплащане на капарото.</br>
   </li>
   <li>Остатъкът в размер на <i class='fillThis veriRengi' id='RemainingPercent'>___________</i> % или съответния неизплатен процент в зависимост от плащането по т. 4.A и т. 4.A, съобразно условията
      <br>на конкретната програма се заплаща минимум <i class='veriRengi'>15</i> дни преди датата на отпътуване.</br>
   </li>
   <li>В случай, че сумата по т. B. не бъде заплатена в посоченият срок, резервацията се анулира и капарото остава в полза на ТУРОПЕРАТОРА като неустойка за претърпените от последния вреди. 
      Ако причината за анулиране на резервацията е в ТУРОПЕРИТОРЪТ и ПОТРЕБИТЕЛЯТ е изпълнил задълженията си по т.4.A и т. 4.B в предвидените срокове, ТУРОПЕРАТОРЪТ възстановява на ПОТРЕБИТЕЛЯ платените от последния суми заедно с неустойка в размер на платеното по т.4.A капаро.
   </li>
   <li>Резервацията се счита за валидна, само ако е потвърдена от ТУРОПЕРАТОРА в рамките на 48 часа. Ако не бъде потвърден първоначално заявеният хотел, ТУРОПЕРАТОРЪТ може да предложи на ПОТРЕБИТЕЛЯ други възможности за настаняване. В случай, че ПОТРЕБИТЕЛЯТ не приеме другите възможности той има право да му бъде възстановено заплатеното капаро.</li>
</ol>

Jquery/JS:

function alanDoldur(divName) {
var eskiBilgi=$(divName).text();
if(eskiBilgi != "_______" ){
$(divName).html("<input type='text' value='"+eskiBilgi+"'></input>");
}           
else
$(divName).html("<input type='text'></input>");
$(divName).children().focus();
$(divName).keypress(function (e) {
var key = e.which;
if(key == 13)  // the enter key code
{ var bilgi= $(divName).children().val();
var bilgiHidden=bilgi;
var isim=(divName.id);
var yeni ="hidden"+isim+"_id";
console.log(yeni);
if(bilgi == "")
{
bilgi="_______";
bilgiHidden="";
}
$(divName).html(bilgi);
$("#"+yeni).val(bilgiHidden);
console.log($("#"+yeni).val());
if(divName.id=="DepositPercent" && $.isNumeric(bilgi)){
bilgiHidden=100-bilgi;
$("#RemainingPercent").html(bilgiHidden);
$("#hiddenRemainingPercent_id").val(bilgiHidden);
}
return false;  
}
});
$(".fillThis *").click(function(e) {
e.stopPropagation();
});
}

现在的问题是,我无法获得失焦/模糊功能,如if key==输入或模糊(显然不是输入或简单模糊,但你明白了)。有什么想法吗?我该如何让它工作?PS:divName由onclick发送。它发送blank的span 的divName

我为您编码了这个:

function keypress() {
  $('.mytext').keypress(function(e) {
    var key = e.which;
    if (key == 13) // the enter key code
    {
      var word = $(this).val();
      if (word == "") word = "______";
      $(this).parents('.hole').html("<span class='hole'>" + word + "</span>");
    }
  });
}
$('.hole').click(function() {
  if ($(this).text() == "______") {
    $(this).html("<input class='mytext' type='text' name='myname' placeHolder='your text..'>");
    keypress();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  This is ACME Company and Stackoverflow Corp. sales form Responsible person <span class="hole">______</span> License No:<span class="hole">______</span>
</div>

查看JSFiddle