2017-12-16 6 views
2

データベースからデータを入力するドロップダウンリストがあります。値が0のときにHTML必須属性を呼び出す方法は?

<div class="form-group"> 
    <label>Title:</label> 
    <select class="form-control" name="Title" id ="titleselect" required> 
     <!-- <option value="" selected="selected">?</option> --> 
     <?php foreach ($titles as $row) {    
      if($this->session->userdata('status')=='active' && $this->session->userdata('Title') == $row->id) { ?> 
      <option value="<?php echo $row->id; ?>" selected="selected"><?php echo $row->value; ?></option> 
    <?php }else{?><option value="<?php echo $row->id; ?>"><?php echo $row->value; ?></option><?php } }?> 
    </select> 
</div> 

マイフォーム、値がデータベースから移入されている方法

form

how values are populated

私のデータベーステーブル、

enter image description here

タイトルフォームに値 "0"( "?")が設定されている場合は、HTML必須属性を呼び出す必要があります。

または、このオプションを '?'で無効にしたいとします。マーク。

これを行うにはどうすればよいですか?

+0

私が正しくあなたを理解していれば、あなたは( '?') '0'したくないフォームを送信する目的のために「有効」と見なされるには?これは役に立ちそうです:https://stackoverflow.com/questions/5805059/how-do-i-make-a-placeholder-for-a-select-boxブラウザに関するコメントに興味深い会話がありますが比較可能性しかし、それは多くの人々に役立っているように見えます。 – David

+0

@David、私は実際にこのようなものを見ています。私は疑問符を選ぶユーザーの能力を無効にしたい。とにかくこれを達成できるのですか? – user5455438

+0

私はPHPの構文を知らないが、この部分では ''

答えて

1

私は私の問題の解決方法を見つけることができました。私はJSやJqueryなしでそれをやり遂げました。 if文を追加しました。

<div class="form-group"> 
<label>Title:</label> 
<select class="form-control" name="Title" id ="titleselect" required> 
<?php foreach ($titles as $row) {       
      if($this->session->userdata('status')=='active' && $this->session->userdata('Title') == $row->id) { ?> 
      <?php if(($this->session->userdata('Title') == 0)) { ?> 
        <option value="" selected disabled><?php echo $row->value; ?></option> 
      <?php } else{?> 
        <option value="<?php echo $row->id; ?>" selected="selected"><?php echo $row->value; ?></option> 
      <?php } ?> 
<?php }else{?><option value="<?php echo $row->id; ?>"><?php echo $row->value; ?></option><?php } }?> 
</select> 

0

このようにjqueryを使用することができます:あなたはidを使用できますか?あなたは、このコードのかもしれないのHELF十分に明確was'nt、あなたはこのコードを操作する場合は、あなたのコードから欲しいものを得ることができ尋ね以来のid =「yourZeroOption」とし、

$('option#yourZeroOption').each(function() { 
    if ($(this).isChecked()) 
     $("select").attr("required", true); 
    else 
     alert('this filled cannot be ?'); 
}); 

のような。しかし、これは確かにあなたに何をすべきかの要点を与えるでしょう。ところがこのコードを送信する必要はありません。その前に警告が表示されます

+0

ありがとうございました。私は自分のソリューションを掲載しました – user5455438

0

これがLaravelにある場合は、通過する特定の番号をキャッチする方法があります。この場合は、greater_thanルールでカスタムメッセージを入力してください。

$this->form_validation->set_rules('title', 'Title', 'greater_than[0]'); 
$this->form_validation->set_message('greater_than', 'Please select one of these value'); 

注: JSの検証動作しますが、それは常にではありません心を保ちます。

+0

実際にはそれはcodeigniterです:) – Akintunde007

+0

ありがとうございました。私は私の解決策を投稿しました – user5455438

+0

@downvoter任意のコメント?しかし、私はシリアルdownvoteに関する改造にこれを報告しました。 –

0

我々はここにvalue=""

は、あなたがrequiredとしてあなた<select>フィールドをマークする必要があり

<form action="/action_page.php"> 
 
<select required> 
 
    <option value="0">?</option> 
 
    <option value="volvo">Volvo</option> 
 
    <option value="saab">Saab</option> 
 
    <option value="mercedes">Mercedes</option> 
 
    <option value="audi">Audi</option> 
 
</select> 
 
<input type="submit"> 
 
</form> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script> 
 
$(document).ready(function(){ 
 
         $("select option:selected").val(""); 
 
    
 
}); 
 
</script> 
 
<style>

+0

しかし、色の変更ではなくフォームを次のステップに進めることを阻止できますか?たぶん一部のJavaScript警告ですか? – user5455438

+0

はい私の更新が必要なのですか?送信ボタンがありますか? –

+0

更新できますか?送信ボタンはありません。 – user5455438

0

、私の考えである場合にのみ行うことができ、それは0の値で必要としますカント最初のオプションはdisabled(およびselected):

<select required> 
    <option value="" selected disabled>?</option> 
    <option value="1">Mr.</option> 
    <option value="2">Miss</option> 
    <option value="3">Mrs.</option> 
</select> 

これにより、基本的に最初の入力はplaceholderとして機能します。

+0

これは私が懇願したものです。あなたは実際に私のコードでそれがコメントアウトされているのを見ることができます。私がこれを実行すると、自動的に値= ""でオプションをスキップし、1,2,3などから開始します。これはデータベースからデータを照会しているためです。他のオプション値でコメントアウトしたコードを埋め込むことは可能ですか? – user5455438

+0

'value =" "'、 'selected'と' disabled'を使うと、それはできません([fiddle](https://jsfiddle.net/a2v77u8x/)参照)。 – moonwave99

+0

私はあなたが何を意味しているのか知っています。しかし、foreachループのために、val = ""の後にオプションを選択します。したがって、フォームがロードされると、val = ""をスキップしてval = 0から始まります。 – user5455438

関連する問題