2010-08-28 2 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> 

... но сценарий не представляется ба назначая answer.value = «1» - я не знаю, почему. Можете ли вы помочь

ответ

8

Это происходит потому, что в данный момент вы назначаете это значение с помощью javascript (не путайте с Java), DOM еще не загружен и форма не существует. Попробуйте вместо этого:

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

или лучше назначить идентификатор для ввода и использовать этот идентификатор:

<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> 

или даже лучше использовать яваскрипт рамку таких jQuery манипулировать DOM для обеспечения совместимости кросса-браузера:

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

другой альтернативой является переход яваскрипта блок в конце документа, где-то после '' тега. –

+0

@Marc B, да, хороший момент. –

+0

все вышеизложенное отлично работает - UNTIL Я добавляю (потому что я хочу, чтобы этот процесс выполнялся автоматически), тогда значение не возвращается – giles

Смежные вопросы