【问题标题】:JQuery - Filter Inputs by Class and ValueJQuery - 按类和值过滤输入
【发布时间】:2015-04-20 21:01:54
【问题描述】:

我目前正在使用 AJAX 提交表单值,我需要按类而不是 id 来获取值 - 我正在收集信息的表单将在 Web 应用程序中多次使用。我使用的是 Framework7 和 Cordova 的组合,因此所有内容都会在应用程序启动时加载到 DOM 中。

所以,假设我在 DOM 中有这些项目:

<html>
   <div class="page1"> 
      <input type="text" class="text-foo" />
   </div>

   ....

   <div class="page1244">
      <input type="text" class="text-foo" />
   </div>
</html>

显示表单时,我打算这样做以清除所有的表单数据:

$(".text-foo").val("");

但现在我需要从这些输入中获取第一个非空白值。理想情况下,JQuery 选择器应该是这样的:

var valueFoo = $(".text-foo").firstNonBlankVal();
//submit the form with elite psuedocode
$.ajax(url: url + "?foo=" + escape(valueFoo));

为每个表单项手动执行一个 for/each 循环,并检查每个迭代对象的非空值似乎......浪费。有什么建议吗?

【问题讨论】:

  • 如果您不反对使用JSLINQ,它可以查询您的结果(但是它们需要存储在一个数组中,这可能会降低任何好处)。
  • 为什么只想提交第一个值?也许看看api.jquery.com/serializeArray
  • 提交第一个非空值。一次只能使用一种“相同”的形式,我不能分享它的原因是因为架构的原因;提交序列化的空白值是一种浪费和麻烦 IMO

标签: jquery ajax cordova input html-framework-7


【解决方案1】:

我认为 $.each 是最好的方法。 以下是代码 sn-ps..

var firstNonBlankedValue = "";
$(".text-foo").each(function(){
    if($(this).length > 0){
        firstNonBlankedValue = $(this).val();
        return;
    }
});
console.log(firstNonBlankedValue);

您也可以查看JSFIDDLE

【讨论】:

  • 我希望不必遍历,但如果这是唯一的选择,我会这样做。感谢您发布代码片段:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-17
  • 2011-10-11
  • 1970-01-01
  • 2022-11-28
  • 2015-05-07
  • 1970-01-01
相关资源
最近更新 更多