无法设置隐藏输入字段的val

时间:2013-07-31 20:52:48

标签: javascript jquery html

我有以下代码,我试图用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来设置值,但没有任何效果。我不知道我的代码有什么问题。

2 个答案:

答案 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);

http://jsfiddle.net/Uh7yn/

答案 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代码中有拼写错误。