Отправить текстовое поле типа OnChange - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь отправить форму при изменении текстового поля в HTML. В настоящее время мой код выглядит примерно так:

echo("<form name=\"editAgendaItem" . $this->Id . "\" id=\"editAgendaItem" . $this->Id . "\" method=\"post\" action=\"./?module=meetings&preload=edit&function=editAgendaItem&agendaitem=" . $this->Id . "\">\n");
echo("<table width=\"100%\" border=0>\n");
echo("<tr><td width=\"20px\">" . $this->Index . "</td><td><input type=\"text\" value=\"" . $this->Title . "\" name=\"agendaItemTitle" . $this->Id . "\" onChange=\"javascript:document.forms['editAgendaItem" . $this->Id . "'].submit();\" />");
echo("</td>\n");
...

Что оценивается в

<form name="editAgendaItem19" id="editAgendaItem19" method="post" action="./?module=meetings&preload=edit&function=editAgendaItem&agendaitem=19">
<table width="100%" border=0>
<tr><td width="20px">1</td><td><input type="text" value="" name="agendaItemTitle19" onChange="javascript:document.forms['editAgendaItem19'].submit()" /></td>
...

Но что более важно

<form name="editAgendaItem19" id="editAgendaItem19" method="post" action="...">
<input type="text" value="" name="agendaItemTitle19" onChange="javascript:document.forms['editAgendaItem19'].submit()" />
...
  • Который в итоге завершается тегом. Моя проблема в том, что после изменения поля и удаления фокуса форма не отправляется.

Заранее спасибо за любую помощь.

Edit:

Я также пытался использовать этот метод в событии onChange вместо встроенного кода:

<script type="text/javascript">
function submitForm(FormName)
{
  document.forms[FormName].submit();
}
</script>

Edit:

принял предложение использовать следующий код:

<script>
$(document).ready(function(){
   $('#agendaItemTitle24').live('blur',function()
      $('#editAgendaItem24').submit();
   });
});​

</script>

у меня в голове и

<form name="editAgendaItem24" id="editAgendaItem24" method="post" action="...">
<input type="text" value="" name="agendaItemTitle24" id="agendaItemTitle24" />
</form>

В моем содержании. До сих пор нет кубиков.

Ответы [ 4 ]

2 голосов
/ 02 марта 2012

Попробуйте это:

onkeyup="javascript:document.forms['editAgendaItem19'].submit()"

функция onChange работает только в том случае, если вы удалите фокус, щелкнув в другом месте

1 голос
/ 02 марта 2012

Ваш HTML может быть таким:

<form name="myForm" id="myForm" method="post" action="...">
<input type="text" value="" name="myInput" id="myInput"/>  

Теперь используйте jQuery:

<script type="text/javascript">
$(document).ready(function(){
   $('#myInput').live('blur',function(){
      $('#myForm').submit();
   });
});​
</script>

Это мой jsFiddle: http://jsfiddle.net/mtwLf/1/

1 голос
/ 02 марта 2012

Попробуйте использовать onBlur событие вместо onChange

0 голосов
/ 02 марта 2012

Я бы действительно начал с того, что разбил этот javascript на отдельный файл и сделал бы его после / после готовности документа.Я думаю, я видел, как люди говорят, что в наше время писать встроенный javascript плохо.

У кого-нибудь есть мысли по этому поводу?

...