2011-03-08 42 views
-3

我不擅長邏輯(事實上數學)。關於邏輯,情報和和解的問題

我正在構建一個簡單的函數。所以我無法解決一個問題。

此功能將控制窗體,文本輸入和選擇中的兩個字段。這是一種搜索表單,可以通過在文本字段中鍵入的術語執行搜索,也可以通過在選擇字段中選擇的類別執行搜索,並且可以同時使用這兩種方法來減少/過濾結果。

[EDITED該功能必須控制: - 不允許通過術語的搜索,在文本字段中,具有少於3個字符; - 不允許在這兩個領域的空搜索:); - 允許使用非空選擇(類別)的空文本字段(術語); - 允許非空文本字段與空選擇。

然後,如果全部選中,表單可以提交。

[已解決] 將此代碼與jQuery一起使用 vbt是一種用於縮短文本字段id,vbf for form和vslt for select的var。 smsg是無效的警報錯誤消息。 HTML表單

<form method="get" action="search_res.php"> 
    <label for="q">Search term</label> 
    <input type="text" name="q" id="q" /> 
    <label for="c">Category</label> 
    <select name="c" id="c"> 
     <option value="c1">Cat 1</option> 
     <option value="c2">Cat 2</option> 
     <option value="c3">Cat 3</option> 
     <option value="c4">Cat 4</option> 
    </select> 
    <button type="submit"><img src="images/submit.png" width="80" height="30" alt="" /></button> 
</form> 

jQuery代碼

$(document).ready(function() { 
    function submt() { 
     if(vbt.val().length >= 3) 
      vbf.submit(); 
     else if((vbt.val() == '') && (vslt.val() != '')) 
      vbf.submit(); 
     else 
      alert(smsg); 
    } 
}); 
+3

太好了! ...你嘗試過什麼? – 2011-03-08 22:14:44

+2

只需提供我們的需求規格!我們會爲你做你的工作。 – Raynos 2011-03-08 22:17:02

+5

將代碼爲食物 – 2011-03-08 22:17:53

回答

1

這裏做什麼...

HTML:

<input type="text"> 

<select> 
    <option> All </option> 
    <option> Logic </option> 
    <option> Intelligence </option> 
    <option> Pacience </option> 
</select> 

<input type="submit" disabled> 

的JavaScript:

var text = $('input:text'), 
    select = $('select'), 
    submit = $('input:submit'); 

function f() { 
    var valid = text[0].value.length >= 3 || select[0].selectedIndex !== 0; 
    submit[0].disabled = !valid; 
} 

text.keyup(f); 
select.change(f); 

現場演示:http://jsfiddle.net/simevidas/DCz9x/1/

+0

謝謝!我在這裏解決了它,但我也會測試你的代碼。對不起,延遲很長。 – tenshimsm 2011-03-09 01:35:26

+0

我沒有使用按鈕type = submit我正在使用按鈕type = button,所以它調用該函數,然後提交它。我不知道我是否正確解釋。我的英文不是很好。 – tenshimsm 2011-03-09 02:00:01

+0

@tenshimsm你可以去:http://jsfiddle.net/simevidas/DCz9x/3/ – 2011-03-09 02:16:06

0

短僞代碼: if(input.strlen<3) input=""

if(select==empty && input=="") return false;

+0

我想你會等待複製粘貼就緒代碼:P – n00b 2011-03-08 23:09:26