【问题标题】:Submit Text Type Field OnChange提交文本类型字段 OnChange
【发布时间】:2012-03-01 22:44:45
【问题描述】:

我正在尝试在更改 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()" />
...
  • 最终由标签终止。我的问题是,在修改字段并放下焦点后,表单没有提交。

提前感谢您的帮助。

编辑:

我也尝试在 onChange 事件中使用此方法而不是内联代码:

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

编辑:

接受了使用以下代码的建议:

<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>

在我的内容中。还是没有骰子。

【问题讨论】:

  • 您的 javascript 控制台中是否收到任何错误或警告?如果是这样,你能把它们贴在这里吗?
  • 不,我是 octern。这就是为什么“- octern”出现在我的 cmets 末尾的原因。

标签: php javascript html forms http-post


【解决方案1】:

试试这个:

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

onChange 函数仅在您通过单击其他位置移除焦点时才有效

【讨论】:

  • 这就是 Snag 的意图——我不想每次用户点击一个键时都提交;因为这会使输入像“Call to Order”这样的议程项目标题需要两分钟的时间;不过谢谢你的建议。
【解决方案2】:

你的 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/

【讨论】:

  • 我会试一试并回复。谢谢。
  • 试一试 - 没有产生任何结果。表单未提交。
  • 你错了@DigitalJedi805;仔细看一下 jsFiddle 链接。将光标放在文本框中,然后出去。表单将尝试执行操作
  • 你是对的@Mohammed Saberi;但由于某种原因,当我把它翻到我的页面时它不适用。我将在我的主要帖子中发布另一个编辑,其中包含我正在尝试的内容。感谢您的帮助。
【解决方案3】:

尝试使用onBlur 事件而不是onChange

【讨论】:

  • 感谢您的建议;如果上述方法不起作用,可以试试这个。
【解决方案4】:

我真的会首先将该 javascript 分解为一个单独的文件,然后在文档准备好/之后执行此操作。我想我看到有人说现在编写内联 javascript 是一件坏事。

有人对此有什么想法吗?

【讨论】:

  • 好吧,我有一个 submitForm 方法也应该这样做;但它实际上也没有发送表单。我将编辑上面的代码以显示它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-29
  • 2015-09-19
相关资源
最近更新 更多