我有一个文本框
@Html.TextBoxFor(m => m.SingleUnitBarcode, new { @class = "form-control",@id="barcode1", onblur = "CloneData" })
在从此文本框中失去焦点时,我希望其中的文本显示在另一个文本框中(id = customerbarcode_field)
我正在使用javascript
<script>
function CloneData() {
var value = document.getElementById("#barcode1").value
document.getElementById("#customerbarcode_field").value = value;
}
</script>
但是,当我从第一个文本框中失去焦点时,该功能未被触发。
我错过了什么?
答案 0 :(得分:3)
您必须将onblur=CloneData
更改为以下内容:
onblur=CloneData()
此外,您必须更改DOM元素的选择。我的意思是您应该更改#
方法中的document.getElementById()
标记。我们传递了我们想要选择的DOM元素的Id
,而没有在#
之前添加Id
。例如,你应该使用这个
document.getElementById("customerbarcode_field")
这是
的内容document.getElementById("#customerbarcode_field")
如果您使用的是JQuery
,那么您可以将此元素选为:
$('#customerbarcode_field')
答案 1 :(得分:2)
像这样修改TextBox:
@Html.TextBoxFor(m => m.SingleUnitBarcode,
new { @class = "form-control",
@id="barcode1",
onblur = "CloneData()" })
和这样的脚本,在 javascript 中你将javascript与jquery混合:
<script>
function CloneData() {
var value = document.getElementById("barcode1").value
document.getElementById("customerbarcode_field").value = value;
}
</script>
如果您想使用 jquery ,那么:
<script>
function CloneData() {
var value = $("#barcode1").val();
$("#customerbarcode_field").val(value);
}
</script>
答案 2 :(得分:1)
将onblur = "CloneData"
替换为onblur = "CloneData()"
,然后从ID
#
function CloneData() {
var value = document.getElementById("barcode1").value
document.getElementById("customerbarcode_field").value = value;
}
答案 3 :(得分:0)
替换
@Html.TextBoxFor(m => m.SingleUnitBarcode, new { @class = "form-control",@id="barcode1", onblur = "CloneData" })
用这个:
@Html.TextBoxFor(m => m.SingleUnitBarcode, new { @class = "form-control",@id="barcode1", onblur = "CloneData();" })
答案 4 :(得分:0)
以这种方式将您的javascript事件放在html中是不好的做法。由于你已经使用了jquery,你可以附加一个监听器,而不会污染你的HTML;
$("body").on('blur', '#barcode1', function(){
$("#customerbarcode_field").val($(this.val());
});