我有以下代码,我试图用java脚本设置隐藏字段的值。
<script type="text/javascript" language="javascript">
var currentTime = new Date();
var tday=currentTime.getDate();
var tmonth=currentTime.getMonth();
var tyear=currentTime.getFullYear();
$("input[name='tday'").val(tday);
$('#tmonth').val(tmonth);
$('#tyear').val(tyear);
document.getElementById('tday').value='213';
</script>
<div id="edit_bs" class="edit_bs_st">
<form id='edir_pers' class='edit_pers_css' name='edit_pers' action='edit_pers.php' method='post'>
<input id='tyear' name='tyear'/>
<input id='tmonth' type='hidden' name='tmonth' />
<input id='tday' type='hidden' name='tday' />
<button type="submit">Submit</button></from>
问题是该值未传递给'edit_pers.php',它们是空白的。我甚至尝试过document.getlementid.value来设置值,但没有任何效果。我不知道我的代码有什么问题。
答案 0 :(得分:2)
hidden
与它没有任何关系。这是你对坏元素的调用。
这是你的:破产
$("input[name='tday'").val(tday);
这是固定的
$('input[name=tday]').val(tday);
这是结果。
$(document).ready(function () {
var currentTime = new Date();
var tday=currentTime.getDate();
$('input[name=tday]').val(tday);
}):
作为旁注,您不需要代码中的冗余标识符。我个人会这样做,因为你可能需要name
属性。
<强> HTML 强>
<input type='hidden' name='tday' />
<强>的Javascript 强>
$('input[name=tday]').val(tday);
答案 1 :(得分:0)
您的问题的一部分是您的代码在DOM中存在元素之前运行。
由于您使用的是jQuery,因此解决此问题的最佳方法是使用document.ready
处理程序。但是,您必须确保页面上已加载jQuery
。
$(function () {
//since your inputs have ids, you do not have to use any attribute selectors
$('#tday').val(213);
});
此外,您在结束form
代码中有拼写错误。