2017-01-16 7 views
1

jquery를 사용하여 확인 대화 상자를 보내려고합니다. 양식이 제출되었지만 if 조건을 수행하지 못했습니다. .table에 복수 .profit 테이블이 들어 있습니다. . 제출시 각 판매 가격과 .profit 테이블 열, if cost > salePrice의 비용을 확인하고 제출하지 마십시오. 제출하지 마십시오.JQuery each() 함수가 확인 양식을 제출하려면

문제는 페이지가 항상 확인 창을 경고하는 것입니다. 이유를 모르겠습니다. 이 내가 가진 것입니다 : 사용자가 클릭 그것은 날씨가 양식을 제출 여부를 확인할 것 확인하면

$(".table").submit(function(event) { 
    $('.salePrice').each(function() { 
    var $table = $(this).parents('.profit'); 
    var cost = $table.find('.cost').val(); 
    if($(this).val() < cost) { 
     if(confirm("cost is larger than salePrice, are you sure?")){ 
      result = true; 
      return false; 
     } else { 
      result = false; 
      return false; 
     } 
    } 
}); 
if (result) { 
    return true; 
    } 
    else { 
    return false; 
}}); 

. 나는 이것이 의미가 있기를 바랍니다. 감사.

jsfiddle에서 HTML : https://jsfiddle.net/6jjhmb7L/1/

+0

HTML을 표시 할 수 있습니까? – vvtx

+0

jsbin 또는 jsfiddle에서 공유 할 수 있습니까 ?? –

+0

THX! 나는 jsfiddle로 쓴다. –

답변

0

을 그때 수정 parseInt을 시도하고 처리기를 추가!

$(".table").submit(function(event) { 
var isOK = true, r = false; 

$('.salePrice').each(function() { 
    var $table = $(this).parents('.profit'); 

    var cost = $table.find('.cost').val(); 

    if (parseInt ($(this).val(), 10) < parseInt (cost, 10)) { 
     if (!r) r = confirm ("cost is larger than salePrice, are you sure?"); 
     isOK = isOK & r; 
    } 
}); 

if (isOK) { 
    return true; 
} else { 
    return false; 
}}); 
1

브라우저가 문자열로 값을 해석한다 (예 : "4.99")와 비교는 문자열 값에 일어나고, 그래서 대신에 수치 비교의 알파 비교입니다 . parseInt을 통합 해보세요. 또한, 당신의 논리는 마지막 if 문에서 반대가되었다고 생각합니다. 결과가 정의되지 않아서 실행하면 문제가 발생합니다. 이 시도 :

$(".table").submit(function(event) { 
    var result = true; 
    $('.salePrice').each(function() { 
    var $table = $(this).parents('.profit'); 
    var cost = parseInt($table.find('.cost').val()); 
    var price = parseInt($(this).val()); 
    if(price < cost) { 
     if(confirm("cost is larger than salePrice, are you sure?")){ 
      result = true; 
      return false; 
     } else { 
      result = false; 
      return false; 
     } 
    } 
}); 
if (!result) { 
    return false; 
    } 
    else { 
    return true; 
} 
}); 

jsFiddle을 : https://jsfiddle.net/mspinks/xtch7hg8/5/

+0

이상한 .. 코드 jsfiddle에서 예상대로 작동하지만 내 개발 영역이 아닙니다. 각 일() 함수에서, 이전에 어떤 일을 하던지, 결과는 항상 내 예제에서 false가 될까 궁금합니다. –

+0

그건 이상합니다. 코드에서 "result"라는 변수가 다른 곳에 정의되어 있습니까? 또한 코드가 제대로 작동하지 않는 것을 볼 수있는 테스트 서버가 있습니까? –