我有一个输入框,供用户输入创建表单中的页面的自定义链接(有点类似于Wordpress)。 (例如,about/awards
用于http://site.com/pages/about/awards
)在某些时候,这已停止在Chrome中工作,因为他们现在对input type="url"
字段进行更严格的验证。哪个会好,但是:
我已经通过切换回输入类型=“文本”来修复它,但这会使type="url"
添加的一些有用的东西失败(例如iPhone上的特殊键盘)。
这是HTML5规范的一部分,还是Chrome实施中的问题?
答案 0 :(得分:2)
规范仍在进行中,但从这句话来看,听起来这可能是Chrome实施的一个问题(大胆强调是我的):
用户代理可以允许用户进行设置 字符串的值不是 有效的绝对网址,但也可以或 而是自动逃脱 用户输入的字符 值始终是有效的绝对值 URL(即使不是实际的 用户看到和编辑的值 界面)。用户代理应该 允许用户将值设置为 空字符串。用户代理不得 允许用户插入U + 000A LINE FEED (LF)或U + 000D CARRIAGE RETURN(CR) 字符成为值。
答案 1 :(得分:2)
它说,“虽然元素的值不是有效的绝对URL,但该元素的类型不匹配。”
答案 2 :(得分:0)
我正在使用的可用的语义解决方法是允许使用pattern
属性的相对网址:
<input required="required" type="url" pattern="(https?|/).*?" name="sStyleBackgroundImageURL" value="{!sStyleBackgroundImageURL}"></input>
答案 3 :(得分:0)
某些浏览器不允许在输入相对URL时成功进行验证。而是将输入模式属性设置为正则表达式。