-1

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

4

2 回答 2

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/

于 2013-07-31T20:54:18.760 回答
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此外,您在结束标记中有错字。

于 2013-07-31T21:03:58.913 回答