Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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 Jquery获取最近类的未定义值_Javascript_Jquery - Fatal编程技术网

Javascript Jquery获取最近类的未定义值

Javascript Jquery获取最近类的未定义值,javascript,jquery,Javascript,Jquery,我正在尝试比较一对datetime值进行验证。我创建了一个动态表单,每次用户单击“添加会话”按钮时都可以使用该表单。将附加会话表单div。例如,我尝试添加2个会话,并用下面的代码验证2对会话日期时间值 $('.startdatetime').each(function(){ console.log($(this).val()); console.log($(this).closest('.datetime-div').next().find('.endda

我正在尝试比较一对datetime值进行验证。我创建了一个动态表单,每次用户单击“添加会话”按钮时都可以使用该表单。将附加会话表单div。例如,我尝试添加2个会话,并用下面的代码验证2对会话日期时间值

    $('.startdatetime').each(function(){
        console.log($(this).val());
        console.log($(this).closest('.datetime-div').next().find('.enddatetime').val());
        if($(this).val() === "" || $(this).val() === null ){
            $(this).closest('.startdatetime-input').after("<p class='error-message font-bold col-pink'>Start Date Time is required.<p>");
            hasErr = true;
        }else if(moment($(this).val()).isSameOrAfter($(this).closest('.datetime-div').next().find('.enddatetime').val(), 'minute')){ //validate start datetime < end datetime
            $(this).closest('.startdatetime-input').after("<p class='error-message font-bold col-pink'>Invalid Date Time.<p>");
            hasErr = true;
        }
    });
$('.startdatetime')。每个(函数(){
log($(this.val());
console.log($(this).closest('.datetime div').next().find('.enddatetime').val());
if($(this.val()==“”| |$(this.val()===null){
$(this).最近('.startdatetime input')。之后(“

需要开始日期时间)。”; 哈塞尔=真; }否则如果(矩($(this).val()).isSameOrAfter($(this).closest('.datetime div').next().find('.enddatetime').val(),'minute'){//validate start datetime无效日期时间.”)之后,$(this); 哈塞尔=真; } });

我正在使用console.log调试的第一个循环中获取第一个会话结束日期时间的未定义值

下面的代码显示了我的html代码段

              <div class="row">
                <div class="datetime-div col-md-6 col-xs-12 col-sm-12">
                    <div class="form-group">
                        <div class="form-line startdatetime-input">
                            <label>Start Date Time</label>
                            <input type="text" class="datetimepicker form-control startdatetime" placeholder="Please choose date & time...">
                        </div>
                    </div>                    
                </div>
                <div class="datetime-div col-md-6 col-xs-12 col-sm-12">
                    <div class="form-group">
                        <div class="form-line enddatetime-input">
                            <label>End Date Time</label>
                            <input type="text" class="datetimepicker form-control enddatetime" placeholder="Please choose date & time...">
                        </div>
                    </div>                    
                </div>
            </div>

开始日期时间
结束日期时间
$('.startdatetime')。每个(函数(){
log($(this.val());
console.log($(this).closest('.datetime div').next().find('.enddatetime').val());
if($(this.val()==“”| |$(this.val()===null){
$(this).最近('.startdatetime input')。之后(“

需要开始日期时间)。”; 哈塞尔=真; }否则如果(矩($(this).val()).isSameOrAfter($(this).closest('.datetime div').next().find('.enddatetime').val(),'minute'){//validate start datetime无效日期时间.”)之后,$(this); 哈塞尔=真; } });


开始日期时间
结束日期时间

代码中的所有内容看起来都很好。您得到的不是未定义的
,而是一个空值,因为两个输入都是空的。如果您填写属性
,您将在控制台中打印这些值,运行我共享的代码段并进行检查。我的更改在html
input
元素中。因此,似乎应该在用户完成输入后运行共享的javascript,而不是像您共享的代码片段中那样

$('.startdatetime')。每个(函数(){
log($(this.val());
console.log($(this).closest('.datetime div').next().find('.enddatetime').val());
if($(this.val()==“”| |$(this.val()===null){
$(this).最近('.startdatetime input')。之后(“

需要开始日期时间)。”; 哈塞尔=真; }否则如果(矩($(this).val()).isSameOrAfter($(this).closest('.datetime div').next().find('.enddatetime').val(),'minute'){//validate start datetime无效日期时间.”)之后,$(this); 哈塞尔=真; } });


开始日期时间
结束日期时间

查看您提供的代码中的代码段-似乎找到了
。最近的
很好?但我在第一个控制台中得到了未定义的end datetime值。运行代码段。没有未定义的
。是否有其他jQuery选择器或方法可用于获取值?