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/';?>";

onChange の代わりに onClick も必要です

これらの2つの変更でうまくいきます。

于 2013-08-27T03:46:29.710 に答える