1

我想知道如何解决我有一个文本框和两个按钮的问题。每个按钮都需要文本框中的相同数据来完成其任务。

一个按钮用于更新他们正在查看的现有记录(使用文本框中的新值),另一个按钮用于添加新记录(同样,使用文本中的新值)。

我的一个想法是使用 jquery 更新隐藏的文本框,当用户修改可见文本框时,该文本框会更新。

所以是这样的:(这只是伪代码......)

 <form name="form1" method="post" action="controller1/method1">
     <input type=text name=visibleTextBoxForForm1></input>
     <button type=submit value=UPdate>
 </form>
 <form name="form2" method="post" action="controller2/method2">
     <input type=hidden name=hiddenTextBoxforForm2></input>
     <button type=submit value=New>
 </form>
 <script>
        $('#visibleTextBoxForForm1').live('change', function() {
             //update a hidden textbox in form2 with value of this textbox.
         });
 </script>

有一个更好的方法吗?

4

2 回答 2

1

或者,您可以通过 JQuery 来完成。为每个按钮绑定一个 clicklistener,并在点击时为表单提供正确的 URL。

这是一些快速代码...您必须更正正确的 jquery 查询以获取正确的元素。

<form name="form1" method="post">
   <input type=text name=visibleTextBoxForForm1></input>
   <button type=button value=Update>
   <button type=button value=New>
</form>

<script>
    $('update').click(function() {
          $(form1).attr('action', <update url>).submit();
    });

    $('new').click(function() {
          $(form1).attr('action', <new url>).submit(); 
    });
</script>
于 2012-09-26T18:19:18.877 回答
0

如果这是唯一的字段,那么只需有一个带有两个按钮的表单,并根据用于提交它的按钮的名称来处理该文本数据。

<form name="form1" method="post" action="controller1/method1">
    <input type="text" name="text" />
    <input type="submit" name="insert" value="Insert New Data" />
    <input type="submit" name="update" value="Update Existing Data" />
</form>

PHP(不是 CodeIgniter,因为我不熟悉那个框架):

if(isset($_POST['insert'])) {
    // insert $_POST['text']
} else if (isset($_POST['update'])) {
    // update $_POST['text']
} else {
    // error
}
于 2012-09-26T14:41:24.623 回答