Ruby on rails jquery水印插件和HTML5电子邮件输入类型无法正常工作

Ruby on rails jquery水印插件和HTML5电子邮件输入类型无法正常工作,ruby-on-rails,forms,jquery-plugins,html,email-validation,Ruby On Rails,Forms,Jquery Plugins,Html,Email Validation,表示可以开始使用电子邮件表单类型。所以我在我的一张表格上试用。我正在使用jQuery和一个名为。它使占位符元素跨浏览器工作。该插件在Firefox 3.6上仍然有效,但在Opera 10.61和Chrome 6上没有呈现占位符 <script type="text/javascript"> $('form input#comment_email').watermark('email (optional)'); </script> 用于显示水印/占位符 Rails 3

表示可以开始使用电子邮件表单类型。所以我在我的一张表格上试用。我正在使用jQuery和一个名为。它使占位符元素跨浏览器工作。该插件在Firefox 3.6上仍然有效,但在Opera 10.61和Chrome 6上没有呈现占位符

<script type="text/javascript">
  $('form input#comment_email').watermark('email (optional)');
</script>
用于显示水印/占位符

Rails 3输出以下内容:

<input id="comment_email" name="comment[email]" size="30" type="email" /> 

我不知道为什么它不起作用。你知道这里发生了什么吗?

看起来jquery水印插件只选择了特定的输入类型来添加水印。您只需在jquery.watermark.js中调整这一行:

selWatermarkAble = ":text,:password,:search,textarea",
要包含新的电子邮件类型,请执行以下操作:

selWatermarkAble = ":text,:password,:search,:email,textarea",

jquery水印插件似乎只选择某些输入类型作为水印。您只需在jquery.watermark.js中调整这一行:

selWatermarkAble = ":text,:password,:search,textarea",
要包含新的电子邮件类型,请执行以下操作:

selWatermarkAble = ":text,:password,:search,:email,textarea",

您是指输入中的占位符文本吗? 还有另一种解决方案:HTML5占位符,水印是不支持占位符的浏览器的一种很好的回退

 $('input[placeholder]').each(function() {
   $(this).watermark($(this).attr('placeholder'));
 })
注意:我没有测试该代码


编辑:另请参见

您是指输入中的占位符文本吗? 还有另一种解决方案:HTML5占位符,水印是不支持占位符的浏览器的一种很好的回退

 $('input[placeholder]').each(function() {
   $(this).watermark($(this).attr('placeholder'));
 })
注意:我没有测试该代码


编辑:当我将其设置为selWatermarkAble=:text、:password、:search、:email、textarea、Opera时,请参见

,Opera停止渲染所有水印。如果我使用selWatermarkAble=:text、:password、:search、email、textarea,则水印在Opera中会再次起作用,不包括电子邮件字段,因为Opera是唯一一个真正验证电子邮件地址的桌面浏览器。其他浏览器呈现电子邮件水印。当我使用selWatermarkAble=:text、:password、:search、:email、textarea时,除Opera之外的所有浏览器都可以工作,Opera不会呈现任何水印。。。这是怎么回事?我怀疑它需要输入[type=email],而不是:email。在下一版本的水印插件中包含对HTML5输入类型的支持时出现了一个问题-当我将其设置为selWatermarkAble=:text、:password、:search、:email、textarea、Opera时,将停止呈现所有水印。如果我使用selWatermarkAble=:text、:password、:search、email、textarea,则水印在Opera中会再次起作用,不包括电子邮件字段,因为Opera是唯一一个真正验证电子邮件地址的桌面浏览器。其他浏览器呈现电子邮件水印。当我使用selWatermarkAble=:text、:password、:search、:email、textarea时,除Opera之外的所有浏览器都可以工作,Opera不会呈现任何水印。。。这是怎么回事?我怀疑它需要输入[type=email],而不是:email。在下一版本的水印插件中包含对HTML5输入类型的支持时出现了一个问题-考虑到水印的实现,您还可以暂时将类型切换为文本,然后再切换回来。考虑到水印的实现,您还可以,暂时将类型切换为文本,然后再次切换。