2013-07-31 5 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 ... У меня есть попробовал 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 тега.

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