我有一个隐藏的输入如下:
<input class="item_shipval" type="hidden" value="" id="shipvalue">
和javascript代码如下:
<script type="text/javascript">
if (shipEmpty){
var shipval = myObject;
document.getElementById('shipvalue').value = shipval;
}
else {
var shipval = "Registered_Air_Mail";
document.getElementById('shipvalue').value = shipval;
}
//console.log (shipval);
</script>
Console.log正在显示shipval值。但它没有传递给id&#34; shipvalue&#34;的隐藏输入值。
上面的代码有什么问题?提前致谢。我是一个javascript新手..
答案 0 :(得分:1)
试试这个:使用jQuery你可以设置隐藏变量的值,前提是你应该在使用之前在你的html中包含jquery库(参见下面的代码)。此外,document.ready
将确保jQuery仅在加载所有DOM结构后执行。
注意 - 假设已经定义了myObject。
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
var shipval = "Registered_Air_Mail";
if (shipEmpty){
shipval = myObject;
}
$('#shipvalue').val(shipval);
console.log (shipval);
});
</script>
编辑: - 删除javascript代码中shipval
变量的重复声明,如下所示
<script type="text/javascript">
var shipval = "Registered_Air_Mail"; // give some default value
if (shipEmpty){
shipval = myObject; // change value if condition is true
}
document.getElementById('shipvalue').value = shipval;
console.log (shipval);
</script>
答案 1 :(得分:0)
确保您的JavaScript位于您页面上的HTML下方。这样,当您的JS尝试getElementById
时,该元素实际存在于页面上。通常,您希望在结束</body>
标记之前包含您的JS:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example</title>
</head>
<body>
<!-- HTML goes first -->
<input class="item_shipval" type="hidden" value="" id="shipvalue">
<!-- JavaScript goes after -->
<script>
window.onload = function() {
var shipval;
if (shipEmpty){
shipval = myObject;
document.getElementById('shipvalue').value = shipval;
}
else {
shipval = "Registered_Air_Mail";
document.getElementById('shipvalue').value = shipval;
}
// console.log (shipval);
}
</script>
</body>
</html>
这是一个JSFiddle,http://jsfiddle.net/7EZ4Z/。
如果将shipEmpty
设置为true或false,则两者都有效。