0

私のメインのjspページには、次のようなものがあります

<%@ include file="../customParametersHorizontal.jsp" %>

<tr>
<td align="center" class="ReportParamsGenerateButtonCell">
<html:submit onclick="if(preGenerateCriteria()){return true;} else {return false;}">Generate</html:submit>
</td>
</tr>

customParametersHorizo​​ntal.jsp 内には、フォームに設定された日時を検証する dateSelection1.jsp 用の別のインクルードがあります。

 <script>
function validateHHMM(inputField, message) {
    var isValid = /^(0?[1-9]|1[012])(:[0-5]\d) [APap][mM]$/.test(inputField);

    if (isValid) {

    }else {
        alert("Time must be entered in the format HH:MM AM/PM");

    }

    return isValid;
}
</script>

そのため、dateSelection1.jsp 内で、次を使用してメイン jsp のボタンを無効にしようとしました。

 document.form1.ReportParamsGenerateButtonCell.disabled= true;

しかし、オブジェクトが null または定義されていないというエラーが表示されます。

とにかく、varを設定して、メインフォームでchackし、それに応じてボタンを無効にすることができますか?

4

2 に答える 2

1

document.form1.ReportParamsGenerateButtonCell次の例のように name 属性が設定された要素を持たない限り、null またはエラーを返しますform1ReportParamsGenerateButtonCell

<form name="form1">
    <input type="submit" name="ReportParamsGenerateButton" value="Generate" />
</form>

この方法ならdocument.form1.ReportParamsGenerateButton.disabled = true問題なくできます。

于 2012-06-04T14:09:53.700 に答える
1

タグを保持し、jQuery を導入せずにそれを行う方法を<html:submit>次に示します。まず、styleId 属性を追加して、取得できる HTML ID がボタンに含まれるようにします。

<html:submit styleId="my_submit" onclick="if(preGenerateCriteria()){return true;} else {return false;}">Generate</html:submit>

次に、ID を使用して DOM の要素を取得し、無効にします。

var elt = document.getElementById("my_submit");
elt.disabled = true;

アップデート

元の質問を正しく理解していれば、main.jsp には customParametersHorizo​​ntal.jsp が含まれ、これには dateSelection1.jsp が含まれます。したがって、3 つのスクリプトは 1 つの HTML ページ、つまり 1 つのドキュメント オブジェクトのみをレンダリングします。

<form>HTML ページに(部分的な) コードしか表示されません。document.form1複数のフォームがある場合でも、要素にアクセスするスタイルとは対照的に、.getElementById() はすべてのフォームのすべての DOM 要素にわたって機能します。

適切な時点で validateHHMM() を呼び出して送信ボタンを有効/無効にしてください。また、ユーザーが入力を修正して有効にしたら、ボタンが再度有効になるようにしてください。

于 2012-06-04T14:24:56.277 に答える