Javascript XSLT не будет правильно публиковать данные - PullRequest
0 голосов
/ 13 августа 2011

Я пытаюсь отправить форму, используя javascript (сгенерированный из таблицы стилей xslt).

<form name='myform' action='search.php' method='post'>
    <input type='hidden' name='query' />
    <script type='text/javascript'>
    function submit(id)
    {
      document.myform.elements[0] = id;  *Note* I have tried document.getElementById('query').value = id;
      document.myform.submit();
    }
    </script>
</form>

После этого кода у меня есть xsl переводы, форматирующие данные xml. Я вызываю функцию отправки так: ПРИМЕЧАНИЕ Этот href = '' ничего не делает представить ( '') somequery

Когда я нажимаю href, функция javascript выполняется и, кажется, работает нормально, за исключением того, что НИКАКИЕ данные не получают POST'ed. Я установил значение «somequery», но когда форма получает POST, значение «» (пусто).

Почему он это делает? Я пробовал createElement ('input') и тому подобное из javascript, но я не могу получить форму, чтобы POST ввести значение.

1 Ответ

1 голос
/ 15 августа 2011

Вы используете Firefox здесь?Поведение может отличаться в разных браузерах.Во-первых, вы должны вернуться к использованию getElementById

document.getElementById('query').value = id; 

Причина, по которой это может не сработать, заключается в том, что ваш скрытый элемент фактически не указывает атрибут id .

<input type='hidden' name='query' id='query' /> 

В IE я считаю, что он допускает отсутствие id и предполагает, что он равен name .В Firefox отсутствие id приводит к ошибке javascript при попытке сделать getElementById

<form name='myform' action='search.php' method='post'> 
<input type='hidden' name='query' id='query' /> 
<script type='text/javascript'> 
function submit(id) 
{ 
   document.getElementById('query').value = id; 
   document.myform.submit(); 
} 
</script> 
</form> 
...