0

ユーザーがJavaScriptの確認を介してアクションを確認すると、aa値を削除するフォームがあります。これはうまく機能しますが、値が空の場合にスクリプトがユーザーに警告するようにしたいので、スクリプトが完全に実行されなくなります。

<script>
    function delete_confirm() {
        var msg = confirm('Are you sure you want to delete the selected audit');
        if (msg == false) {
            return false;
        }
    }
</script>


<form id="audit_control_form" method="post" 
    action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <select id="audit_id_select" name="audit_id_select" style="width:150px">
        <option value="">Please select</option>
        <? while ($row = mysqli_fetch_assoc($result)) {
            if ($row['dateEnd'] == '0000-00-00') {
                $dateEnd = 'Present';
            } else {
                $dateEnd = date('d-m-Y', strtotime($row['dateEnd']));
            }
            echo '<option value="'.$row['auditID'].'">'.$row['auditName']
                .' (' . date('d-m-Y', strtotime($row['dateStart'])) 
                .' - '.$dateEnd . ')</option>';
        } ?>
    </select>
    <input type="submit" name="audit_delete_submit" 
        onClick="return delete_confirm()" value="Delete" />
</form>

これを実装する最良の方法が何であるかはわかりません(私はjavascriptにかなり慣れていません)。

4

3 に答える 3

0

フォーム要素に値があることを確認し、それに応じて分岐するだけです。

if (document.getElementById("audit_id_select").value) {
  // select box has a selected value
} else {
  // select box has no selected value
}
于 2013-01-18T18:34:45.397 に答える
0

選択ボックスの場合、selectedIndexチェックボックスのプロパティが 0 かどうかをテストすることで、ユーザーが値を選択していないかどうかを確認できます。そのため、最初に<select>要素への参照を取得してから、document.getElementByIdそのプロパティをテストします。

function delete_confirm() {
    var selectBox = document.getElementById('audit_id_select');
    if (selectBox.selectedIndex === 0) {
        alert("No value selected");
        return false;
    }

    var msg = confirm('Are you sure you want to delete the selected audit');
    if (msg == false) {
        return false;
    }
}
于 2013-01-18T18:35:22.977 に答える
0

次のように、ドロップダウンで選択された値をテストできます。

function delete_confirm() {

    if(document.getElementById("audit_id_select").value == "")
    {
        alert("Please select an option");
        return false;
    }

    var msg = confirm('Are you sure you want to delete the selected audit');
    if(msg == false) {
        return false;
    }
}
于 2013-01-18T18:34:13.670 に答える