2010-08-28 43 views
0

我正在研究一個簡單的腳本來傳遞值「... php?answer = 1」,如果啓用了java。我有這遠...簡單的文檔無法工作

<script language="text/javascript"> 
document.form.answer.value=1; 
</script> 
</head> 
<body> 
<form name="form" action="enabled_catch.php" method="get"> 
<input type="hidden" name="answer"> 
<input type="submit" value="click me"> 
</form> 

...但劇本沒有出現BA分配answer.value =「1」 - 我不知道爲什麼。你能幫忙嗎

回答

8

發生這種情況是因爲在你使用javascript分配這個值的時候(不要與Java混淆),DOM沒有加載,表單不存在。試試這個:

<script type="text/javascript"> 
window.onload = function() { 
    document.form.answer.value = '1'; 
}; 
</script> 

或更好的ID分配給您的輸入,並使用該ID:

<head> 
<script type="text/javascript"> 
window.onload = function() { 
    document.getElementById('answer').value = '1'; 
}; 
</script> 
</head> 
<body> 
    <form name="form" action="enabled_catch.php" method="get"> 
     <input type="hidden" id="answer" name="answer" /> 
     <input type="submit" value="click me" /> 
    </form> 
</body> 

甚至更​​好的使用JavaScript框架,這樣jQuery操作DOM,確保跨瀏覽器兼容:

<script type="text/javascript"> 
$(function() { 
    $(':hidden[name=answer]').val('1'); 
}); 
</script> 
+1

另一種選擇是將javascript塊移到文檔的末尾,在''標籤後面的某處。 – 2010-08-28 14:59:51

+0

@馬克乙,是的,好點。 – 2010-08-28 15:02:50

+0

所有上述工作很好 - 直到我添加(因爲我想這個過程自動發生),那麼該值無法返回 – giles 2010-08-28 15:12:51