2014-01-13 2 views
2

я получил большую часть этого кода от ответа на This questionJavascript, добавьте поле ввода для формирования. Не работает в IE

<script type="text/JavaScript"> 
    function newInput(NIFormName,NIname,NIvalue,NItype='hidden'){ 
    var theForm = document.forms[NIFormName]; 
    var input = document.createElement('input'); 
    input.type = NItype; 
    input.name = NIname; 
    input.value = NIvalue; 
    theForm.appendChild(input); 
    return true; 
    } 
</script> 

Это, казалось, работать в FF, но не IE 11.

Таким образом, я сделал поиск и это выглядело как я нужен другой метод, и я попробовал:

<script type="text/JavaScript"> 
    function newInput(NIFormName,NIname,NIvalue,NItype='hidden'){ 
    var theForm = document.forms[NIFormName]; 
    var input = document.createElement('input'); 
    input.setAttribute('type', NItype); 
    input.setAttribute('name', NIname); 
    input.setAttribute('value', NIvalue); 
    theForm.appendChild(input); 
    return true; 
    } 
</script> 

Он по-прежнему работает в FF 26 и не работает в IE.

Когда я говорю «это не работает», я имею в виду, что я не вижу ошибок, и поле не добавляется к представленным данным.

Это вершина моей формы:

<form name="writenew" method="get" action="formtest.php" onSubmit="newInput('writenew','first_added_field','Yep! I was added.');"> 

и это formtest.php

<?php 
    var_export($_GET); 
?> 

Когда я представляю его с FF, это входит в дисплей

'first_added_field' => 'Да! Я добавил. ',

Но в IE это не так.

Как это сделать в IE?

+0

Теперь вы, какие ошибки получаете, если вы нажмете F12 в IE, тогда вы получите консоль, и это, надеюсь, даст вам читаемую ошибку. –

+0

похоже, что вы пытаетесь добавить его в submit, но если браузер слишком быстр и т. Д., Возможно, он не добавит его вовремя, чтобы перейти на другую страницу? Почему вы добавляете его в submit. –

+2

'method = get" 'Вам не хватает двойной кавычки. – MattDiamant

ответ

2

Javascript не поддерживает параметры по умолчанию, такие как NItype='hidden'. Это только функция firefox. См. here. Попробуйте использовать только NItype, а затем проверьте его на неопределенный внутри функции. Вот example.

+0

Спасибо. Я постараюсь сделать это завтра. – TecBrat

+0

Спасибо. Я закончил использование функции newInput (NIFormName, NIname, NIvalue, NItype) { NItype = NItype || «Скрытый»; // поскольку значение «falsey» не разрешено, это создает значение по умолчанию. ' – TecBrat

+0

Ваш прием. Да, если параметр не может быть ложным, тогда это идеальное решение. – zord

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