0

我有一个表单,它的动作最初是刷新页面。但我需要一个按钮来提交数据并更改表单的操作。我尝试使用下面的 JavaScript:

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

按钮

<input type="button" class="submit" value="Save" onchange="submitForm()" />

JavaScript

function submitForm(){
    document.getElementById('form1').action = <?echo base_url().'index.php/folder/controller/controller_function/';?>;
    document.getElementById('form1').submit();
}

当我单击按钮时,什么也没有发生。我也尝试在表单的操作中使用 if/else 语句,但这也不起作用:

<form id="form1" name="form1" action="<?if(isset($_POST['saveButton'])){echo base_url().'index.php/folder/controller/controller_function/';} else{echo "";}?>" method="post">
4

2 回答 2

3

首先,应该引用 JavaScript 中的值,因为它是一个字符串:

function submitForm(){
    document.getElementById('form1').action = '<?echo base_url().'index.php/folder/controller/controller_function/';?>';
    document.getElementById('form1').submit();
}

其次,您正在触发change按钮事件的功能,这可能不起作用,因为按钮不会改变。submit尝试在表单本身上绑定到事件:

<form id="form1" name="form1" action="" method="post" onsubmit='submitForm();'>

但我会在 JavaScript 中使用事件侦听器来完成它:

document.getElementById('form1').addEventListener('submit', function(e) {
    e.preventDefault();
    this.action = '<?echo base_url().'index.php/folder/controller/controller_function/';?>';
    this.submit();
}, false);
于 2013-08-27T03:39:14.113 回答
1

在动作周围加上引号,如下所示:

  document.getElementById('form1').action = "<?echo base_url().'index.php/folder/controller/controller_function/';?>";

您还需要 onClick 而不是 onChange

这两项更改对我来说效果很好。

于 2013-08-27T03:46:29.710 回答