semantic-ui - 语义表单验证 - 验证任一字段为非空

标签 semantic-ui

我有一个表单,其中有 2 个字段:ssn 和电话。我希望用户输入该领域的任何人。我正在使用语义验证,这是我的代码,您能让我知道如何使用语义验证表单吗?

<form class="ui error form basic segment" role="form" method="POST" action="{{ url('/username/email') }}">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    <input type="hidden" name="_method" value="patch">
    <div class="ui info message">
        Please enter either SSN or phone to email you the username.
    </div>

    <div class="field">
        <label for="ssn">SSN</label>
        <div class="ui icon input">
            <input type="text" class="form-control" name="ssn" value="{{ old('ssn') }}">  
        </div>
    </div>
    <div class="field">
        <label for="phone">Phone</label>
        <div class="ui icon input">
            <input type="text" class="form-control" name="phone" value="{{ old('phone') }}">  
        </div>
    </div>

    <input type="submit" value="Email Username" class="ui primary button"> 

</form>
<script type="text/javascript">
      $('.ui.form')
      .form({
        inline : true,
        on: 'blur',
        fields: {
          username: {
            identifier : 'ssn',
            rules: [
              {
                type   : 'empty',
                prompt : 'Please enter a SSN'
              }
            ]
          },
        }
      })
    ;
</script>

`

最佳答案

下面是一个更优雅的解决方案 Semantic UI字段识别标准。
字段不仅可以通过 Oniisaki 中提供的 input[name="…"] CSS 选择器来识别的接受答案,但也可以通过 DOM 元素 id 或 data-validation 属性:

/**
 * Checks whether current field value or at least one of additionally 
 *   given fields values is not empty, neither blank string.
 * @param {string} value Current field value.
 * @param {string} fieldIdentifiers Comma separated field identifiers.
 * @return {boolean}
 */
$.fn.form.settings.rules.allEmpty = function(value, fieldIdentifiers) {
  var $form = $(this);

  return !!value || fieldIdentifiers.split(',').some(function(fieldIdentifier) {
    return $form.find('#' + fieldIdentifier).val() ||
        $form.find('[name="' + fieldIdentifier +'"]').val() ||
        $form.find('[data-validate="'+ fieldIdentifier +'"]').val();

  });
};


// Using newly created custom validation rule.
// Notice how multiple fields are defined, if required.
$('.ui.form').form({
  ssn: {
    identifier: 'ssn',
    rules: [{

      // Multiple field identifiers could be defined, 
      // like `allEmpty[phone,email,skype]`.
      type: 'allEmpty[phone]',
      prompt: 'SSN or Phone (at least one field) must be filled.'
    }]
  }
});

关于semantic-ui - 语义表单验证 - 验证任一字段为非空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31533095/

相关文章:

javascript - 语义 UI - 选项卡/显示 URL

javascript - 如何验证语义用户界面中的小数字段?

html - 语义 ui 按钮未正确显示

javascript - 如何在react中 overflow hidden 的文本内容

javascript - 如何使用 Semantic UI 和 JQuery 在特定卡片上进行调光,而不是在我的所有卡片库上进行切换

javascript - 如何在 Semantic UI-React 中将标签放置在图标下?

html - 为什么仅使用语义 UI 中的网格模块时我的列太宽?

具有远程选择菜单内容的语义 UI 下拉菜单 : 'clear' and 'set exactly' remove placeholder

CSS 显示内联使两行而不是一行

javascript - ReactJS语义ui加载器: how to toggle active