Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 修改JS以满足新的HTML表单_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript 修改JS以满足新的HTML表单

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

我有一个小脚本写在JS的形式。脚本看起来是这样的:

$(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");