2013-06-22 3 views
0

У меня есть эта проблема с условным кодом в этом коде. Код работает отлично, за исключением линии.jQuery AJAX Post - больше, чем условно не работает правильно

<if condition="$show['member']"> 
<script type="text/javascript" > 
$(function() { 
$("#submitbutton$post[postid]").click(function() { 
var username = $("#username_$post[postid]").val(); 
var reputationamount = $("#amount_$post[postid]").val(); 
var dataString = 'username='+ username + '&reputationamount=' + reputationamount; 

if(username == '' || reputationamount == '') { 

$('.errorsameuser_$post[postid]').hide(); 
$('.errorreputation_$post[postid]').hide(); 
$('.errorempty_$post[postid]').fadeIn(200); 


} else if (username == '$bbuserinfo[username]') { 

$('.errorempty_$post[postid]').hide(); 
$('.errorreputation_$post[postid]').hide(); 
$('.errorsameuser_$post[postid]').fadeIn(200); 

} else if (reputationamount >= '$bbuserinfo[reputation]' || reputationamount <= '0') { 

$('.errorempty_$post[postid]').hide(); 
$('.errorsameuser_$post[postid]').hide(); 
$('.errorreputation_$post[postid]').fadeIn(200); 

} else { 
$.ajax({ 
type: "POST", 
url: "donaterep.php", 
data: dataString, 
success: function(){ 
$('.errorempty_$post[postid]').hide(); 
$('.errorsameuser_$post[postid]').hide(); 
$('.errorreputation_$post[postid]').hide(); 
$('#donaterepbox_$post[postid]').fadeOut(); 
$('.success_$post[postid]').fadeIn(500); 
} 
}); 
} 
return false; 
}); 
}); 
</script> 

Эта часть не работает:

еще если (reputationamount> '$ bbuserinfo [репутации]' || reputationamount < = '0') {

$('.errorempty_$post[postid]').hide(); 
$('.errorsameuser_$post[postid]').hide(); 
$('.errorreputation_$post[postid]').fadeIn(200); 

} 

reputationamount = Что пользовательские входы. (Пример: 5) $ bbuserinfo [репутация] = количество репрезентаций человека, дающего пожертвование. (Пример: 4)

Так что давайте говорить, что это ..

если (5> 4 || 5 < = '0') {

$ ('errorreputation_ $ пост [сообщения дан]') .fadeIn (200);

}

Он должен бросить эту ошибку, но вместо этого он запускает AJAX пост.

Помощь?

Другие условия работа хорошо.

ответ

1

Это происходит потому, что обе стороны сравнения (<) оператора является строка, если одна стороны оператора является число, то Javascript будет конвертировать в другой стороне также в число перед выполнением сравнения

Попробуй

не
} else if (reputationamount >= $bbuserinfo[reputation] || reputationamount <= 0) { 
+0

нет, это вычисляться даже строки проверить http://jsfiddle.net/suhailvs/yXJtU/ – suhailvs

+0

@suhail в обоих случаях одна сторона номер попытка '«5»<«25'' вместо '5 <» 25'' или ''5' <25' –

+0

Ex: http://jsfiddle.net/arunpjohny/KVhY2/1/ –