【问题标题】:Change the placeholder color after submit the form提交表单后更改占位符颜色
【发布时间】:2017-05-11 01:33:05
【问题描述】:

据此:Change an HTML5 input's placeholder color with CSS 更改占位符颜色的代码是:

::-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;
}

这段代码非常好,运行良好。但是,我有一个小问题。 当有人单击“提交”时,我想更改占位符的颜色(唯一的问题是在 js 上更改它的功能......其他一切都很好)。这就是我尝试用 js 做的事情:

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

它对我不起作用...我应该改变什么来解决它?我想这有点小,但我无法修复它......有什么建议吗?

【问题讨论】:

  • 最好用以上所有css创建一个类,并使用addClass(myclass)将该类添加到js中
  • 点击提交时页面提交
  • @Jonasw 我的代码只是在同一页面中显示成功与否的消息。变化的颜色是如果有问题
  • @WebO ::-webkit-input-placeholder 不是 CSS 属性。它是selector 的一部分。 coloropacity 是这里的属性。同样,如果您单击提交,除非是 AJAX 请求,否则表单将被提交。

标签: javascript jquery html css placeholder


【解决方案1】:

您可以在表单上添加一个类并将您的属性继承到其中,而不是使用 JS 更改 CSS。当有人提交表单时,您的表单标签上会出现 addClasstoggleClass 之类的东西。

JS:

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

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;
}

看看下面的sn-p:

$('.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>

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    希望这行得通!

    $("#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" />

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-03
      • 2012-04-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 2013-02-04
      • 2018-10-29
      相关资源
      最近更新 更多