简体   繁体   English

提交表格后更改占位符颜色

[英]Change the placeholder color after submit the form

According to this: Change an HTML5 input's placeholder color with CSS The code to the change the placeholder color is: 据此: 用CSS更改HTML5输入的占位符颜色更改占位符颜色的代码为:

::-webkit-input-placeholder { /* WebKit, Blink, Edge */
    color:    #909;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
   color:    #909;
   opacity:  1;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
   color:    #909;
   opacity:  1;
}
:-ms-input-placeholder { /* Internet Explorer 10-11 */
   color:    #909;
}

This code is really good and works fine. 这段代码真的很好,可以正常工作。 However, I have a small problem. 但是,我有一个小问题。 I wants to change the color of the placeholder when someone clicking "submit" (The only problem is the function that change it on js... Everything else working good). 当有人单击“提交”时,我想更改占位符的颜色(唯一的问题是在js上更改它的功能...一切正常。) This is what I tried to do with js: 这是我尝试使用js进行的操作:

$("#email").css('::-webkit-input-placeholder', 'red');
$("#email").css(':-moz-placeholder', 'red');
$("#email").css('::-moz-placeholder', 'red');
$("#email").css(':-ms-input-placeholder', 'red');

It doesn't works to me... What should I change to fix it? 它对我不起作用...我应该更改些什么来修复它? I guess it's something small, but I can't fix it... Any suggestions? 我想这有点小,但我无法解决...有什么建议吗?

Instead of changing the CSS using JS, you can add a class on the form & inherit your properties into it. 无需使用JS更改CSS,您可以在表单上添加一个类并将其继承属性。 Something like addClass or toggleClass on your form tag when someone submits the form. 有人提交表单时,表单标签上的addClasstoggleClass内容。

JS: JS:

$('.form-btn').on('click', function(e) {
  e.preventDefault();
  $(this).parent().closest('form').toggleClass('submit-form');
});

CSS (inherited with .submit-form class): CSS(继承.submit-form类):

form.submit-form ::-webkit-input-placeholder {
  /* WebKit, Blink, Edge */
  color: red;
}

form.submit-form :-moz-placeholder {
  /* Mozilla Firefox 4 to 18 */
  color: red;
  opacity: 1;
}

form.submit-form ::-moz-placeholder {
  /* Mozilla Firefox 19+ */
  color: red;
  opacity: 1;
}

form.submit-form :-ms-input-placeholder {
  /* Internet Explorer 10-11 */
  color: red;
}

Have a look at the snippet below: 看看下面的代码片段:

 $('.form-btn').on('click', function(e) { e.preventDefault(); $(this).parent().closest('form').toggleClass('submit-form'); }); 
 input[type="email"] { display: block; font-size: 20px; margin-bottom: 10px; } ::-webkit-input-placeholder { /* WebKit, Blink, Edge */ color: #909; } :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #909; opacity: 1; } ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #909; opacity: 1; } :-ms-input-placeholder { /* Internet Explorer 10-11 */ color: #909; } form.submit-form ::-webkit-input-placeholder { /* WebKit, Blink, Edge */ color: red; } form.submit-form :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: red; opacity: 1; } form.submit-form ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: red; opacity: 1; } form.submit-form :-ms-input-placeholder { /* Internet Explorer 10-11 */ color: red; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form class="" action=""> <input type="email" placeholder="Enter Email" /> <button class="form-btn">Submit (change placeholder color)</button> </form> 

Hope this helps! 希望这可以帮助!

Hope this works !! 希望这有效!

 $("#email").addClass('success'); 
 .success::-webkit-input-placeholder { color: orange; } .success::-moz-placeholder{ color: orange; } .success:-ms-input-placeholder{ color: orange; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <input type="email" id="email" placeholder="email" /> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM