返回介绍

文本框 / TextBox

发布于 2020-09-22 11:39:01 字数 2878 浏览 1180 评论 0 收藏 0

在用户输入过程中,TextBox会发送onChange事件,可以监听这个事件来处理用户的输入,包括获取数据、校验数据;

<label class="field-label">我是</label>
<div id="textbox1" class="ui-textbox">
  <input type="text">
</div>
<div id="welcome">你好</div>
require(['moye/TextBox'], function (TextBox) {

  new TextBox({
    main: document.getElementById('textbox1')
  })
  .on('change', function () {
    document.getElementById('welcome').innerText = '你好,' + this.getValue();
  })
  .render();

});

文本框的状态

<div class="form-row">
  <div id="textbox2" class="ui-textbox ui-textbox-disabled">
    <input type="text" value="禁用">
  </div>
  <div id="textbox3" class="ui-textbox ui-textbox-readOnly">
    <input type="text" readonly="true" value="只读">
  </div>
</div>
<div class="form-row">
  <div id="textbox4" class="ui-textbox ui-textbox-valid">
    <input type="text" value="通过校验">
  </div>
  <div id="textbox4" class="ui-textbox ui-textbox-invalid">
    <input type="text" value="未通过校验">
  </div>
</div>

自动推荐
下面这个示例,在用户输入的过程中,从百度加载相关的热门搜索词。

<div id="textbox-autocomplete" class="ui-textbox">
  <input type="text" value="">
</div>
require(['moye/TextBox', 'moye/plugin/TextBoxAutoComplete'], function (TextBox, TextBoxAutoComplete) {

  new TextBox({
    main: document.getElementById('textbox-autocomplete'),
    plugins: [{
      type: 'TextBoxAutoComplete',
      options: {
        datasource: function (query) {
          return $.ajax({
            url: 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?json=1',
            data: {wd: query},
            dataType: 'jsonp',
            jsonp: 'cb'
          })
          .then(
            function (ret) {
              return $.map(ret.s, function (item) {
                return {
                  text: item,
                  value: item
                };
              });
            },
            function () {
              return [];
            }
          );
        },
        // 定制dom
        renderItem: function (data, index) {
          var cls = 'acitem ' + (index % 2 ? 'even' : 'odd');

          return '<div class="' + cls + '">' + data.text + '</div>';
        }
      }
    }]
  })
  .render()
  .on('autocomplete', function (e) {
    var data = e.suggestion;
    var text;

    if ($.isEmptyObject(data)) {
      text = $.trim(this.getValue());
    }
    else {
      text = data.text;
    }

    window.open('https://www.baidu.com/s?wd=' + text);
  });
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文