1

領域を入力する必要があるフォームがあり、その単位をドロップダウン リストから選択する必要があります。これにはJavaScript検証を使用していますが、機能していません。これが私のコードです:

function check_admin_post_property()
{
 var area=document.post_property.property_area.value;
if(area != "")
{
    if(document.post_property.area_unit.value == "Select")
    {
        alert("Area unit must be selected");
        document.post_property.property_area.focus();
        return false;
    }
}
}

最初の行は変数を宣言し、エンド ユーザーが入力した値を取得します。2行目は、フィールドが空ではないかどうかをチェックします。つまり、値があることを意味します。4 行目は、ユーザーが適切な面積単位を選択する必要があるため、ドロップダウン リストの値が [選択] と等しいかどうかを確認します。選択の検証が失敗した場合。基本的にやりたいことは、エリアへの立ち入りは必須ではありませんが、必須の場合はユニットを同伴する必要があります。

ここに私のマークアップがあります:

<form name="post_property" action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
<table>
    <tr><td>Other fields</td></tr>
    <tr>
    <td>Property area:</td>
    <td><input type="text" name="property_area" style="border:1px solid red;"><span style="color:red">*</span</td>
    </tr>
    <tr>
        <td>Area unit:</td>
        <td>
            <select name="area_unit">
                <option value="Select">Select</option>
                <option value="square_feet">Square feet</option>
                <option value="square_yards">Square yards</option>
                <option value="square_meter">Square meter</option>
                <option value="acre">Acre</option>
                <option value="hectare">Hectare</option>
            </select>
        </td>

    </tr>
    <tr>
         <td align="center"><input type="submit" name="submit" value="Submit" onclick="return check_admin_post_property()"></td>
</tr>

stackoverflow のマークアップが正しく機能していないため、マークアップはフォーマットされていません。私の側にも見えません。

script要素のsrc属性でjsをインポートしています。これは、js ファイル名が post_property.js の js という名前のフォルダー内にあります。そのファイル内には、上記のコードが存在する関数 check_admin_post_property() があります。完全なスクリプトと html ファイルを投稿することはできません。なぜなら、彼ら (私の職場の人々) に知られたら、私はここを離れることになるからです (この Web サイトは、私の職場で最もチェックされている Web サイトの 1 つです)。しかし、私は関連する部分を投稿しました。それについてさらに情報が必要な場合は、私に言うか、そのようなことが行われたサードパーティのページを指してください.

4

1 に答える 1

0

コードの問題は、<input type='submit'>. 使用する必要があるのは<input type='button'>. 作業コードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
function check_admin_post_property() {
    var area=document.post_property.property_area.value;
    if(area != "")
    {
        if(document.post_property.area_unit.value == "Select")
        {
            alert("Area unit must be selected");
            document.post_property.area_unit.focus();
            return false;
        }
        else
            document.post_property.submit();
    }
    else {
        alert("Area must be entered.");
        document.post_property.property_area.focus();
    }
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form name="post_property" action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
<table>
    <tr><td>Other fields</td></tr>
    <tr>
    <td>Property area:</td>
    <td><input type="text" name="property_area" style="border:1px solid red;"><span style="color:red">*</span></td>
    </tr>
    <tr>
        <td>Area unit:</td>
        <td>
            <select name="area_unit">
                <option value="Select">Select</option>
                <option value="square_feet">Square feet</option>
                <option value="square_yards">Square yards</option>
                <option value="square_meter">Square meter</option>
                <option value="acre">Acre</option>
                <option value="hectare">Hectare</option>
            </select>
        </td>

    </tr>
    <tr>
         <td align="center"><input type="button" name="submit" value="Submit" onclick="return check_admin_post_property()"></td>
</tr>
</table>
</form>
</body>
</html>
于 2013-03-21T09:34:54.670 に答える