0

選択メニューからのオプションが選択されていることを検証することを除いて、フォームですべてが機能しています。エラーが表示されますが、何かが選択されると消えません。

html

<div id="budget_input">
                <label for="budget">Budget</label>
            <select name="mydropdown">
            <option value="" id="mydropdown"> -- choose one --</option>
            <option value="firstchoice">$0 - $1,000</option>
            <option value="secondchoice">$1,000 - $2,000</option>
            <option value="thirdchoice">$3,000 +</option>
            </select>
</div>

php

$name = trim(stripslashes(htmlspecialchars($_POST['name'])));           
$email = trim(stripslashes(htmlspecialchars($_POST['email'])));
$mydropdown = trim(stripslashes(htmlspecialchars($_POST['mydropdown'])));  

$error_message = '';    
    $reg_exp = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,4}$/";

    if (!preg_match($reg_exp, $email)) {

                $error_message .= "<p>A valid email address is required.</p>";             
    }
    if (empty($name)) {

                $error_message .= "<p>Please provide your name.</p>";              
    }

    if (empty($mydropdown)) {

                $error_message .= "<p>Please select an item from the list.</p>";
    }   

js部分はクライアント側に表示されます

var valid = '';
var required = ' is required.';
var name = $('form #name').val();
var email = $('form #email').val();
var mydropdown = $('form #mydropdown').val();   

if (name == '' || name.length <= 2) {
        valid = '<p>Your name' + required +'</p>';  
    }

    if (!email.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
        valid += '<p>Your email' + required +'</p>';                                                  
    }

    if (mydropdown == '') {
        valid += '<p>An item from the list' + required +'</p>';

    }
4

3 に答える 3

2

コードをこれに置き換えてください。うまくいくことを願っています。

<div id="budget_input">
                    <label for="budget">Budget</label>
                <select name="mydropdown" id="mydropdown">
                <option value="" > -- choose one --</option>
                <option value="firstchoice">$0 - $1,000</option>
                <option value="secondchoice">$1,000 - $2,000</option>
                <option value="thirdchoice">$3,000 +</option>
                </select>
    </div>
于 2012-12-21T07:11:24.450 に答える
2

マークアップを変更する

 <div id="budget_input">
            <label for="budget">Budget</label>
        <select id="mydropdown">
        <option value=""> -- choose one --</option>
        <option value="firstchoice">$0 - $1,000</option>
        <option value="secondchoice">$1,000 - $2,000</option>
        <option value="thirdchoice">$3,000 +</option>
        </select>
 </div>

JS コードを変更する

var valid = '';
var required = ' is required.';
var name = $('form #name').val();
var email = $('form #email').val();
var mydropdown = $('form #mydropdown').val();   

if (name == '' || name.length <= 2) {
    valid = '<p>Your name' + required +'</p>';  
}

if (!email.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
    valid += '<p>Your email' + required +'</p>';                                                  
}

if (mydropdown == '') {
    valid += '<p>An item from the list' + required +'</p>';

}

Jqueryでアイテムが選択されているかどうかをチェックするために使用されるので、選択ボックスIDを追加するだけです。


編集#1 - スクリーンショットを追加

スクリーンショット - 間違いを犯した場所

于 2012-12-21T07:13:09.320 に答える
1

js 検証が機能するには、id=mydropdown が必要です。

 <select id="mydropdown">

name="mydropdown"これで、選択ボックスに を設定しました

于 2012-12-21T07:12:24.870 に答える