1

(似たようなものを検索しましたが、一致するものや機能するものは見つかりませんでした)

ユーザーが前の手順の設定を確認する進捗レビューフォームがあります。以下は私が今持っているフォームです:

<form id='reviewForm' name='reviewForm' action='?action=ae&view=makeWorkFlow' method='post'>
    <table width='100%'>
        <tr>
            <th width='150'>Workflow Name</th>
            <td>" . $workflowName . "</td>
        </tr>
        <tr>
        <th valign='top'>Tasks</th>
            <td>
                <table width='99%'>
                    <tr>
                        <td>
                            <select name='task_1'>
                                <option value='0'>Select a Task</option>
                                <ALL OTHER OPTIONS>
                            </select>
                        </td>
                        <td><input type='text' name='turnAround_1' value='#VALUE#' onkeyup="if (/[a-z\s,$]/ig.test(this.value)) this.value = this.value.replace(/[a-z\s,$]/ig,'')" placeholder='Turn Around Time (hours)' /> Hours</td>
                    </tr>
                </table>
            </td>
        </tr>
        <tr>
            <td colspan='2'>
                <input type='hidden' id='step' name='step' value='4' />
                <input type='submit' name='submit' value='Create Workflow' />&nbsp;&nbsp;
                <input type='button' value='Update Changes' onclick='setStep();' />&nbsp;&nbsp;
                <input type='button' value='Cancel' onclick='javascript:history.go(-3);' />
            </td>
        </tr>
    </table>
</form>

したがって、基本的に、ユーザーはドロップダウンのリストからアイテムをすでに選択しています。選択内容を変更して[変更を更新]ボタンをクリックするオプションがある「レビュー」ページを表示する必要があります。そのボタンをクリックしたら、「step」非表示フィールドの値を4から3に変更してから、次のような「setStep」関数を使用してフォームを送信する必要があります。

<script language='JavaScript' type='text/javascript'>
    function setStep()
    {
        document.forms["reviewForm"].step.value = 3;
        var t = setTimeout("document.reviewForm.submit();", 0);
    }
</script>

setTimeoutはそれを行うための最良の方法ではないことを理解していますが、これを理解しようとしているのはまさにそのためです。これを修正するのは私が見逃している小さなことだと確信していますが、私はこれに1時間以上いて、それを見つけることができません。

4

3 に答える 3

7

問題は、送信ボタンの名前がsubmit

したがって、解決しながらdocument.reviewForm.submit()

submit()はjavascriptの関数であるため、許可されません。また、コードのsubmitには<input type='submit' name='submit' value='Create Workflow' />、フォームの要素()の名前も含まれています。

ボタンの名前を他の名前に変更するとsubmit(例:)、submit1正常に機能します

setTimeoutまた、次のコードを使用する必要はありません

function setStep()
    {
        document.forms["reviewForm"].step.value = 3;
                document.reviewForm.submit();
    }
于 2012-07-03T17:37:00.800 に答える
2
document.getElementById('step').value='3';
document.getElementById('reviewForm').submit();

アップデート

于 2012-07-03T17:33:45.477 に答える
1

document.getElementById('step').value = 3の代わりに試してくださいdocument.forms["reviewForm"].step.value = 3;

于 2012-07-03T17:32:53.237 に答える