jQuery / Javascript:针对非常大的可能案例列表检查用户文本输入的有效方法

时间:2016-06-23 10:09:21

标签: javascript jquery validation

我已经创建了一个检查我们是否向您提供的信息。我在jQuery上的网站上的按钮。

将邮政编码放入数组中,并在提交表单时针对数组检查用户输入。

有约。要检查的10,000个邮政编码 - 这会创建相当大的js文件。

它似乎没有问题,但我希望这不是最好的方法。

我找到了这个例子,但这也包括了js文件中的所有值:

Jquery Validator - check input against a list of accepted values

    // post code check
    jQuery(function($) {

      // if user presses enter
      if ($('.home').length) {

        $('#postcode').keypress(function(e) {

          if (e.which == 13) {
            e.preventDefault();

            $('#submit').click();
          };
        });


        $("#submit").click(function(e) {
        e.preventDefault();


      var trim = $("#postcode").val();
      var val = trim.replace(/ /g, '');
      var upper = val.toUpperCase();
      var test = ["hello"]
      var arr = ["postcode1", "postcode2", "...postcode10,000"];
      if ($.inArray(upper, arr) !== -1) {
        alert('We Deliver To You!');
      } else {
        alert('Sorry we are not in your area yet');
      };
    });


  };
});

1 个答案:

答案 0 :(得分:0)

如果当前邮政编码可用于发货,您可能需要向后端发送ajax并检入数据库。所以你需要:

  • 后端脚本以捕获请求
  • table是包含所有可能的邮政编码和标志(可用或不可用)的数据库
  • 将ajax请求发送到后端脚本

用于邮政编码的sql表(示例)

public interface MultivaluedMap<K,V> extends Map<K,List<V>>

简单的jQuerycode发送ajax:

CREATE TABLE `postcodes` (
  `code` INT NOT NULL AUTO_INCREMENT,
  `status` ENUM('NORMAL','DISABLED') NULL DEFAULT 'NORMAL',
  `created_at` INT NULL,
  `updated_at` INT NULL,
  PRIMARY KEY (`code`));