Javascript 修改JS以满足新的HTML表单
我有一个小脚本写在JS的形式。脚本看起来是这样的:Javascript 修改JS以满足新的HTML表单,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有一个小脚本写在JS的形式。脚本看起来是这样的: $(document).ready(function() { // Test for placeholder support $.support.placeholder = (function(){ var i = document.createElement('input'); return 'placeholder' in i; })(); // Hide labels by
$(document).ready(function() {
// Test for placeholder support
$.support.placeholder = (function(){
var i = document.createElement('input');
return 'placeholder' in i;
})();
// Hide labels by default if placeholders are supported
if($.support.placeholder) {
$('.form-label').each(function(){
$(this).addClass('js-hide-label');
});
// Code for adding/removing classes here
$('.form-group').find('input, textarea').on('keyup blur focus', function(e){
console.log(e);
// Cache our selectors
var $this = $(this),
$parent = $this.parent().find("label");
if (e.type == 'keyup') {
if( $this.val() == '' ) {
$parent.addClass('js-hide-label');
} else {
$parent.removeClass('js-hide-label');
}
}
else if (e.type == 'blur') {
if( $this.val() == '' ) {
$parent.addClass('js-hide-label');
}
else {
$parent.removeClass('js-hide-label').addClass('js-unhighlight-label');
}
}
else if (e.type == 'focus') {
if( $this.val() !== '' ) {
$parent.removeClass('js-unhighlight-label');
}
}
});
}
});
这是我的HTML表单:
<form id="contact-form" class="form" action="#" method="POST" role="form">
<div class="form-group">
<label class="form-label" for="name">Your Name</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Your Name" required>
</div>
<div class="form-group">
<label class="form-label" for="email">Your Email</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Your Email" required>
</div>
<div class="form-group">
<label class="form-label" for="subject">Subject</label>
<input type="text" class="form-control" id="subject" name="subject" placeholder="Subject">
</div>
<div class="form-group">
<label class="form-label" for="message">Message</label>
<textarea rows="5" cols="50" name="message" class="form-control" id="message" placeholder="Message..." required></textarea>
</div>
<div class="text-center">
<button type="submit" class="btn btn-start-order">Send Message</button>
</div>
</form>
所以我的问题是如何修改JS以使用以下表单。所有添加的内容都围绕输入和文本区域
非常感谢您的期待。在您的代码中,只需更改行:
$parent = $this.parent().find("label");
到
更新表单后,
$(this).parent()
指的是
,而不是
$this.closest(“.form group”).find(“label”)
将正确引用label
元素。它正在使用新的html,但您必须更改css样式它在哪里使用新的html?
$parent = $this.parent().find("label");
$parent = $this.closest(".form-group").find("label");