【问题标题】:A matter of logic, intelligence and pacience [closed]逻辑,智慧和耐心的问题[关闭]
【发布时间】:2011-03-08 22:11:42
【问题描述】:

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

我正在构建一个简单的函数。所以我想不出一个问题。

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

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

如果全部勾选,就可以提交表单了。

[已解决] 将此代码与 jQuery 一起使用 vbt 是一个 var 来缩短文本字段 id,vbf 用于表单,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>

查询代码

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

【问题讨论】:

  • 太棒了! ...您尝试了什么?
  • 只要给我们需求说明!我们会为您完成工作。
  • @SimeVidas 不,你发布代码!
  • @Raynos 嗯,重点不应该是吗? - “没有发布代码!” - 还是动词有问题?
  • @SimeVidas 我建议您通过邮件将其发布给他。但我并没有很好地传达这一点。

标签: jquery function if-statement logic submit


【解决方案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/

【讨论】:

  • 谢谢!我已经在这里解决了,但我也会测试你的代码。抱歉耽搁了这么久。
  • 我没有使用按钮类型=提交我使用的是按钮类型=按钮,所以它调用该函数然后提交它。而且我不知道我是否解释正确。我的英语不是很好。
  • @tenshimsm 给你:jsfiddle.net/simevidas/DCz9x/3
【解决方案2】:

短伪代码: if(input.strlen&lt;3) input=""

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

【讨论】:

  • 我猜你只需要等待复制粘贴准备好的代码:P
猜你喜欢
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多