2013-07-31 78 views
-1

我有以下代碼,我試圖用java腳本設置隱藏字段的值。無法設置val的隱藏輸入字段

<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

該字段還不存在。將腳本移動到元素下方或使用'$(document).ready' – kalley

回答

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

除此之外,您的(OP)示例缺少右括號。 '(「input」[name ='tday'「)。val(tday);'應該是'$(」input [name ='tday']「)。val(tday);' –

+0

yeahhh ...我有嘗試bot的Java腳本和jQuery,但沒有人工作。 – user2288650

+0

謝謝daughtkom。我改變了它...仍然沒有改變:( – user2288650

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標記中有錯字。