2016-02-19 41 views
1

我有一個帶SELECT和TEXT(及其他)輸入的表單。 SELECT有兩個選項。其中一個選項要求將日期添加到文本框中,另一個不需要日期。只有在選擇了多個選項中的一個選項時才需要輸入字段

我需要找到一種方法來要求完成TEXT輸入(這是一個jQuery的日期選擇器),如果其中一個表單選項被選中,但不需要與其他。

形式...

<input class="ml-text" type="text" name="descriptive_title" size="45" placeholder="Required ..." value="<? echo $doc_title; ?>"required> 
     <br><br> 
     <label class="title">Upload Type</label> 
     <select class= "ml-select" name="upload_type"> 
       <option value="cutting_list">Cutting List</option> 
       <option value="site_instruction">Extra Works</option> 
       </select> 
    <input class="ml-text" type="text" size="22" name="date_required" id="datepicker" placeholder="Date Required"> 

我試圖處理表單頁面上標題做到這一點,但與所有的標題,這似乎是抓住那些在同一頁上特別是使用兩個首先做任何事情之前。

我想...

if($upload_type == 'cutting_list' && !isset($POST['date_required'])){ 
      $desc_title = str_replace(' ', '_', $descriptive_title); 
      header("Location: ../workflow/workflow.php?error=no_date&doc_title=$desc_title&department=$department"); 
    } 
else { 
    .... do everything else 
header("Location: ../workflow/workflow.php "); 
} 

的想法,如果上傳類型爲切割表,但沒有設定日期POST(也試過!空),那麼它將返回與形式錯誤,但如果這些條件不符合,將繼續與腳本並返回到表單,現在提交沒有錯誤的東西在標題。

只是不能得到它的工作。

回答

2

你可以使用JavaScript檢查/ jQuery的的selecthttps://api.jquery.com/change/)的值,如果它是一個與所需的日期時間,你可以在requiredhttps://www.w3.org/TR/html5/forms.html#the-required-attribute)屬性添加到input

小樣本腳本,如果選擇值1,將會將輸入設置爲必需。

<html> 
 
<body> 
 
<select onchange="if (this.options[this.selectedIndex].value == '1') {document.getElementById('myinput').setAttribute('required', '');} else {document.getElementById('myinput').removeAttribute('required')}"> 
 
    <option value=''>none</option> 
 
    <option value=1>1</option> 
 
    <option value=2>2</option> 
 
</select> 
 
<input type='text' id='myinput'> 
 
</body> 
 
</html>

+0

會去的合乎邏輯的方式,但我並不熟練使用JavaScript,因此會回來詢問如何編寫代碼的另一個問題! :( – Stephen

+0

查看我更新的答案,它使用普通的javascript,所以不需要jQuery。 – Pit

+1

@Pit - 爲什麼要將'javascript:'文本添加到'onchange'?瀏覽器應該總是將其解釋爲JavaScript,所以在那裏 – Derek

相關問題