逻辑,智慧和耐心

时间:2011-03-08 22:11:42

标签: jquery function if-statement logic submit

我不擅长逻辑(事实上数学)。

我正在构建一个简单的函数。所以我无法解决一个问题。

此函数将控制表单中的两个字段,文本输入和选择。这是一种搜索表单,其中搜索可以通过在文本字段中键入的术语执行,也可以通过在选择字段中选择的类别执行,并且可以同时使用两者来减少/过滤结果。

[EDITED]该功能必须控制: - 不允许在文本字段中按术语搜索少于3个字符; - 不允许在两个字段中进行空搜索:); - 允许非空选择(类别)的空文本字段(术语); - 允许非空文本字段为空选择。

然后,如果选中所有表格,则可以提交表格。

[解决] 将此代码与jQuery一起使用 vbt是一个用于缩短文本字段id的var,用于表单的vbf和用于select的vslt。 smsg是警告错误消息的var。 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 CODE

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

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

短伪码: if(input.strlen<3) input=""

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