2013-07-29 2 views
2

У меня проблема с функцией javascript, которая устанавливает .innerHTML div. Код HTML, который должен появиться в div, является формой. Прежде чем я проверил форму, она сама (без javascript), и она работает. Он отправляет информацию на страницу.Javascript | Кнопка не отправляет форму с .innerHTML

Но когда я сделал форму, отображаемую в div с .innerHTML, макет формы отлично работает, но кнопка не отправляет форму. Он ничего не делает.

Надеюсь, вы можете мне помочь. Я только начинаю, чтобы получить некоторые JavaScript в моей голове :-)

function reactieID(a,b,c,d){ 
document.getElementById('myModal').innerHTML= ('<form name="getTheInfo" method="post" action="actionpage.php">'); 
document.getElementById('myModal').innerHTML+=('<div class="subtitel">Reactie</div>'); 
document.getElementById('myModal').innerHTML+=('<input hidden="hidden" name="a" type="text" value="'+a+'" />'); 
document.getElementById('myModal').innerHTML+=('<input hidden="hidden" name="b" type="text" value="'+b+'" />'); 
document.getElementById('myModal').innerHTML+=('<input hidden="hidden" name="c" type="text" value="'+c+'" />'); 
document.getElementById('myModal').innerHTML+=('<input hidden="hidden" name="d" type="text" value="'+d+'" />'); 
document.getElementById('myModal').innerHTML+=('<input size="80" name="reactie" type="text" class="textfield" />'); 
document.getElementById('myModal').innerHTML+=('<input type="submit" value="Toevoegen" />'); 
document.getElementById('myModal').innerHTML+=('</form>'); 
document.getElementById('myModal').innerHTML+=('<a class="close-reveal-modal">&#215;</a>');} 

UPDATE: Я пытаюсь добавить в строке кнопки onclick="this.form.submit()", но это не сработало :-(


проблема решена! (благодаря помощи FrostbiteXIII)


+0

где события? –

ответ

1

Его теги формы, которые ему не нравятся - если вы положите их первым, я подозреваю, что это сработает. :)

, например:

<html> 
<head> 
<script> 
function reactieID(a,b,c,d){ 
    document.getElementById('myModal').innerHTML+=('<div class="subtitel">Reactie</div>'); 
    document.getElementById('myModal').innerHTML+=('<input hidden="hidden" name="a" type="text" value="'+a+'" />'); 
    document.getElementById('myModal').innerHTML+=('<input hidden="hidden" name="b" type="text" value="'+b+'" />'); 
    document.getElementById('myModal').innerHTML+=('<input hidden="hidden" name="c" type="text" value="'+c+'" />'); 
    document.getElementById('myModal').innerHTML+=('<input hidden="hidden" name="d" type="text" value="'+d+'" />'); 
    document.getElementById('myModal').innerHTML+=('<input size="80" name="reactie" type="text" class="textfield" />'); 
    document.getElementById('myModal').innerHTML+=('<input type="submit" value="Toevoegen" />'); 
    document.getElementById('myModal').innerHTML+=('<a class="close-reveal-modal">&#215;</a>'); 
} 
</script> 
</head> 
<body onload="reactieID('a','b','c','d')"> 
<form name="getTheInfo" method="post" action="actionpage.php"> 
    <div id='myModal'></div> 
</form> 
</body> 
</html> 

EDIT: Вы даже можете указать тэг формы: первый

<form name="getTheInfo" id="getTheInfo" method="post" action=""> 

, а затем добавить JS к вашей функции выше, чтобы указать действие, выполняемое, и это все еще работает нормально:

document.getElementById('getTheInfo').action = "actionpage.php"; 
0

Предоставить метод jQuery, который свяжет кнопку отправки с событием, сом что-то вроде этого:

<script> 
$(document).on('click', 'input[type="submit"]', function(){ 
var self = $(this); 
self.closest('form').submit(); 

}); 
</script> 
Смежные вопросы