如何在模糊时更改输入值?

时间:2019-05-09 07:49:34

标签: javascript html

我有一个链接为“添加更多”,它会根据需要添加任意数量的输入元素。我想对此调用模糊功能。

在点击“添加更多”链接时添加了以下html:

<input required="" class="form-control js-validate-hoursToAdd timetoadd" step="0.01" name="calculations[settingIndex][hoursToAdd][calculationIndex]" type="number" value="">

Blur事件仅适用于默认情况下位于DOM中的第一个元素。当我添加新元素时,blur事件不会绑定到该元素。

以下是JavaScript代码。

$(document).ready(function() {
    $(".timetoadd").blur(function(){
    this.value = parseFloat(this.value).toFixed(2);
    });
)};

它在称为backend.js的单独文件中。我正在使用webpack来缩小文件,它包含在html文件中。

该怎么做?请帮帮我。

4 个答案:

答案 0 :(得分:1)

parent 元素上使用jQuery的on()方法,并使用另一个选择器作为第二个参数:

<<< PushRow<aType>(kProxyFormType) { 
   ...
}.onChange { row in 
    if let encryptionRow = self.form.rowBy(tag: kEncryption) as? PushRow<String> {
       if row.value?.isA {
           encryptionRow.options = ["1","2","3"]
       } else if row.value?.isB {
           encryptionRow.options = ["4","5","6"]
       }
    }
}
$(document).ready(function() {
  $("#btnAdd").click(function() {
    $('<br/><input required="" class="form-control js-validate-hoursToAdd timetoadd" step="0.01" name="calculations[settingIndex][hoursToAdd][calculationIndex]" type="number" value="">').appendTo(document.body);
  });

  $(document.body).on('blur', '.timetoadd', function(){
    this.value = parseFloat(this.value).toFixed(2);
  });
});

除了<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <button type="button" id="btnAdd">Add more</button> <br/><input required="" class="form-control js-validate-hoursToAdd timetoadd" step="0.01" name="calculations[settingIndex][hoursToAdd][calculationIndex]" type="number" value="">之外,您还可以使用包含输入的任何其他父项。

答案 1 :(得分:0)

通过添加html属性onblur和一些javascript ...

function myFunc(input) {
  input.value = 0;
}
<input required="" class="form-control js-validate-hoursToAdd timetoadd" step="0.01" name="calculations[settingIndex][hoursToAdd][calculationIndex]" type="number" value="" onblur="myFunc(this)">

答案 2 :(得分:0)

这是我为您制作的一个例子。为此,请您输入。应该很好

function GetValue(e){
    alert(e.target.value);
};
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="inputgroup">
   <input type="text" name="Dynamic_0" onblur="GetValue(event)">
   <input type="text" name="Dynamic_1" onblur="GetValue(event)">
   <input type="text" name="Dynamic_2" onblur="GetValue(event)">
</div>

答案 3 :(得分:0)

// find elements
var id = $("#id > div")
var id1 = $("#id1")

var input = $("input")
var inputCopy;
var button = $("button")

// handle click and add class
button.on("click", function() {
  $('<input required="" class="form-control js-validate-hoursToAdd timetoadd" step="0.01" name="calculations[settingIndex][hoursToAdd][calculationIndex]" type="number" value=""><br>').appendTo(id);
  /* addMore(e.currentTarget, e.currentTarget.value);
  console.log('new input', e.currentTarget); */
})


$(document.body).on("blur", '.timetoadd', function() {
  this.value = parseFloat(this.value).toFixed(2);
  inputCopy = input;
})

function addMore(e, value) {
  inputCopy = e.clone()
  id.prepend($(inputCopy));
}
body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#id {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#id.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#id.alt button {
  background: #fff;
  color: #000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="id">
  <button>Add more</button>
  <div>
    <input required class="form-control js-validate-hoursToAdd timetoadd" step="0.01" name="calculations[settingIndex][hoursToAdd][calculationIndex]" type="number" value="">
  </div>

</div>

JSFiddle https://jsfiddle.net/kutec/c4pvLoua/