【问题标题】:Native (non-jqueryui) way to set prompt() input field inline内联设置 prompt() 输入字段的本机(非 jqueryui)方式
【发布时间】:2010-04-07 00:45:24
【问题描述】:

我可能只是在 Google 上使用了错误的关键字,但我想到的是:

 --------------------------------
|    What is your mailbox?       |
|                                |
|    [       ]@mail.example.org  |
|                                |
|        [OK]      [Cancel]      |
 --------------------------------

这个想法是输入字段后面紧跟邮件服务器名称,以帮助避免出现以下情况:

  1. 如果我不让它跟在后面,用户就会把整个东西都放进去,

  2. 如果我将其默认为“blah@mail.example.org”,他们会删除服务器名称。

无论哪种情况,这都不是什么大不了的事,因为我会知道如果返回的值确实有服务器,则将其删除,如果没有,我知道它属于哪个服务器,但我认为这种视觉效果帮助将带来更好的用户体验,并减少我经常遇到的验证问题。

【问题讨论】:

  • 'native' 提示不允许这样做。相反,您可以在页面顶部显示带有表单的 div,我宁愿使用 jquery 而不是发明自行车
  • @vittore 我宁愿使用本机提示而不是用坦克击中它。 jQuery + jqUI = 大量代码
  • 通常情况下,我不认为 jquery/jqui 会很费力,或者至少,它会为自己付出代价,但在这种情况下,我正在尝试制作一个 iphone 驱动的页面(在您询问之前,它不仅用于下载移动配置文件)。我会(并且可能)只是说把它搞砸并使用 jq-ui,但我实际上喜欢移动 safari 原生的提示/警报风格,所以我希望我的目标能够保持这种原生感觉。
  • @nickf:我总是尽量不做任何预优化。如果大量代码是个问题 - 开始优化它并编写自己的 UI 控件。如果您的站点很小,但听觉却没有那么大 - 使用 jqUI 并不是什么大不了的事
  • @Anthony:你也看到了iphone.hohli.com/#

标签: javascript html dom dialog


【解决方案1】:

如果用户删除主机并且没有指定他们自己的主机,您可以假设他们打算使用默认主机。

var email = prompt("What is your email address?", "@mail.example.org");
if (email.indexOf("@") === -1) {
  email += "@mail.example.org";
}

【讨论】:

    【解决方案2】:

    您可以在标准的 Javascript 提示中设置一个默认值,但您不能做更多的事情。我会在之后检查并根据需要剥离或添加服务器部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 2015-03-28
      • 2019-08-02
      • 2015-01-08
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      相关资源
      最近更新 更多