JQuery中的条件不起作用

时间:2016-03-22 14:39:23

标签: javascript jquery

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

  

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

这样的事情继续下去。使用了______的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();
});
}

现在问题是我无法使用丢失的焦点/模糊功能,如果键= =输入或模糊(不输入或只是模糊但你明白了)。任何想法我怎样才能使它工作? PS:divName由onclick发送。它发送空白跨度的divName

1 个答案:

答案 0 :(得分:0)

我为你编码了这个:

&#13;
&#13;
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();
  }
});
&#13;
<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>
&#13;
&#13;
&#13;

View on JSFiddle