2015-10-14 118 views
-1

这会获取包含值,选择或检查的元素的ID。但是,我试图识别包含值的ID,选择或检查表单中的LAST ID。获取元素的最后一个ID

任何解决方案如何解决这将是一个很大的帮助!

Live DEMO

$('#submit').live('click', function() { 
 
    $(".analytics").each(function() { 
 
    var getid = $(this).attr('id'); 
 
    if ($(this).is('input:text') && $(this).val() != "") { 
 
     alert(getid); 
 
    } else if ($(this).is('select') && $(this).val() != "") { 
 
     alert(getid); 
 
     return false; 
 
    } else if ($(this).is(':checked')) { 
 
     alert(getid); 
 
     return false; 
 
    } 
 
    }); 
 
    return false; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
 
<p>Select a value at the top and a value at the bottom and submit</p> 
 

 
<form id="myForm"> 
 
    1) Please Select Your First Car 
 
    <BR> 
 
    <select id="car1" class="analytics"> 
 
    <option value="">Please Select</option> 
 
    <option value="volvo">Volvo</option> 
 
    <option value="saab">Saab</option> 
 
    <option value="mercedes">Mercedes</option> 
 
    <option value="audi">Audi</option> 
 
    </select> 
 
    <BR> 
 
    <BR>2) Please Select Your Second Car 
 
    <BR> 
 
    <select id="car2" class="analytics"> 
 
    <option value="">Please Select</option> 
 
    <option value="volvo">Volvo</option> 
 
    <option value="saab">Saab</option> 
 
    <option value="mercedes">Mercedes</option> 
 
    <option value="audi">Audi</option> 
 
    </select> 
 
    <br> 
 
    <br>3) First name: 
 
    <br> 
 
    <input type="text" id="firstname" name="firstname" class="analytics" value=""> 
 
    <BR> 
 
    <BR>4) Last name: 
 
    <br> 
 
    <input type="text" id="lastname" name="lastname" class="analytics"> 
 

 
    <br> 
 
    <br>5) Select your Newsletter: 
 
    <BR> 
 
    <input type="checkbox" id="news1" name="newsletter" value="" class="analytics">Daily 
 
    <br> 
 
    <input type="checkbox" id="news2" name="newsletter" value="" class="analytics">Weekly 
 
    <br> 
 
    <br>6) Select your Gender: 
 
    <BR> 
 
    <input type="radio" id="gender1" name="gender" value="" class="analytics">Male 
 
    <br> 
 
    <input type="radio" id="gender2" name="gender" value="" class="analytics">Female 
 
    <br> 
 
    <br>7) Do you like books? 
 
    <BR> 
 
    <input type="radio" id="question_yes" name="question" value="" class="analytics">Yes 
 
    <br> 
 
    <input type="radio" id="question_no" name="question" value="" class="analytics">No 
 
    <input type="submit" id="submit"> 
 
</form>

+0

“LAST ID”是什么意思?你的意思是你想要一个非空的表单中最后一个元素的CSS ID?如果是这样,你的标准是不是空的? – jfriend00

回答

1

一种解决方案是使用.filter.last

$('#submit').live('click', function() { 
    // Retrieve the last element with inputs 
    var $last = $(".analytics").filter(function() { 

     // Filter based on the same filters you're already using 
     return ($(this).is('input:text') && $(this).val() != "") || 
      ($(this).is('select') && $(this).val() != "") || 
      $(this).is(':checked'); 
    }).last() 

    alert($last.attr("id")); 
    return false 
}); 

Updated Fiddle

我还建议使用.on附加事件,特别是因为.live已弃用(并已删除!)从更高版本的jQuery:

$(document).on('click', '#submit', function() { 
0

我相信这是你的意思....

获取表单元素的总数。然后遍历元素向后。像这样......

var i = document.getElementById("myForm").elements.length; 

var count = i; 
while(count > 0) 
{ 
    if(document.getElementById("myForm").elements[count].value) 
    { 
     alert("Found it!! ID: " + document.getElementById("myForm").elements[count].id); 
    } 
    count--; 
}