2014-01-10 2 views
0

제출하기 전에 확인란의 속성을 확인하고 POST 전에 jQuery를 사용하여 오류 메시지를 수행해야합니다.jQuery를 사용하여 체크 된 속성

예를 들어 친구가 선택되어 있지 않으면 데이터를 보내기 전에 경고를 표시하려고합니다. 내 코드 :

function send(friends) 
{ 
var data = {}; 
data['url'] = $('#link').attr('src'); 
val = []; 
    $("input[name='friends']").each(function(i) 
    { 
    if(this.checked == true) 
     val.push(this.value); 
    }); 
    data['friends'] = val; 
    $.post('send.php', data); 
    $("#sentmsg").addClass("in").fadeIn().delay(5000).fadeOut(); 
    $("input[name='friends']").removeAttr("checked"); 
    $("#success").show(); 
} 

하지 않도록 내가 코드에이를 넣어 작동합니다 :

else if(this.checked == false) 
{ 
    alert("no box ticked!"); 
} 
+0

"protip"를 사용 :'발 = $ ('입력 [이름 = 친구] : 선택').지도 (함수() {this.value를 반환}) ;'성공을 가정하고'# success'를 보여주는 것보다는'$. post '의'success' 콜백이나 그것이 반환하는 promise-like 오브젝트를 사용할 필요가 있습니다. – meagar

답변

0

val 변수의 길이를 확인할 수 있습니다. 그러나 선택한 항목의 값을 찾기 위해 .map()

function send(friends) { 
    var data = {}; 
    data['url'] = $('#link').attr('src'); 

    //use .map() to convert the dom reference to an array 
    var val = $("input[name='friends']:checked").map(function (i) { 
     return this.value 
    }).get(); 
    if(!val.length){ 
     alert('friends not selected'); 
     return 
    } 

    data['friends'] = val; 
    $.post('send.php', data); 
    $("#sentmsg").addClass("in").fadeIn().delay(5000).fadeOut(); 
    $("input[name='friends']").removeAttr("checked"); 
    $("#success").show(); 
} 
+0

게시 할 때 다른 답변을 모두 downvote하는 것이 얼마나 좋은가 ...? – NewInTheBusiness

+0

@NewInTheBusiness 누가 당신의 대답은 downvoted했다 –

+0

아무도 downvoted 아무것도? 모든 도움은 저에게 높이 평가됩니다. Arun의 대답은 내가 알아 내야 할 정확한 것입니다. 편집 : 그것은 내가 upvote 아무것도 허용하지 않을 경우, 내가 할 수 있다면 이걸 upvote 것입니다. Arun에게 감사드립니다. – user3166831

0

이 아무도 선택하지 않은 경우 확인에 쉽게 접근 할 수 ...

var checked = $('input[name="friends"]:checked'); 
//number of checked boxes 
var nr_checked = checked.length; 
if (!nr_checked) { 
    alert("no box ticked!"); 
} else { 
    //Do your thing 
} 
0

다음과 같이 입력하십시오.

if(val.length == 0){ 
    alert("no box ticked!"); 
} 
관련 문제