Μια μικρή βοήθεια για τον κώδικά μου

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
rafinos
Δημοσιεύσεις: 301
Εγγραφή: 15 Μάιος 2011 00:20
Επικοινωνία:

Μια μικρή βοήθεια για τον κώδικά μου

Δημοσίευση από rafinos » 01 Μαρ 2012 16:10

Καταρχήν θα ήθελα να μου πει κάποιος τι κάνει αυτό:

Κώδικας: Επιλογή όλων

if (!$("#element_id").change()){
   $("#other_element").show();
}
(το έγραψα καθαρά βάσει λογικής και δεν ήξερα αν δουλεύει και τελικά δούλεψε... το χρησιμοποιώ μέσα σε ένα κουμπί reset που κάποιες φορές δεν χρειάζεται να κρίβει κάποιο συγκεκριμένο element ενώ κάποιες άλλες πρέπει...)
και επίσης πως γίνεται το παραπάνω να δουλεύει και αυτό όχι:

Κώδικας: Επιλογή όλων

if ($("#element_id").change()){
   $("#other_element").hide();
}

Έχω και άλλο ερώτημα.
Στον παρακάτω κώδικα ελέγχο το διάστημα ανάμεσα σε σελίδες...
στη σύγκριση αν το from είναι μεγαλύτερο υπάρχει κάποιο λάθος, μπορεί κάποιος να το βρεί;
Για παράδειγμα αν δώσω στο from την τιμή 99 και στο to την τιμή 1000 ή 100 τότε μου βγάζει το μήνυμα 'Στο πεδίο "Σελίδες" το "Aπό" δεν μπορεί να είναι μεγαλύτερο από το "Έως"!'
ενώ αν βάλω 98 στο from και στο to 99 γίνεται κανονικά ο έλεγχος...

o κώδικας:

Κώδικας: Επιλογή όλων

function validate_pages(){
		var from = $('#from_page');
		var to = $('#to_page');
		
		if&#40;from.val&#40;&#41;.length < 1 && to.val&#40;&#41;.length < 1 &#41;&#123;
			$&#40;'#ckpages'&#41;.html&#40;''&#41;;
			return '';
		&#125;else if&#40;from.val&#40;&#41;.length < 1 && to.val&#40;&#41;.length > 0 &#41;&#123;
			$&#40;'#ckpages'&#41;.html&#40;'Στο πεδίο "Σελίδες" το "Aπό" είναι κενό!<br />'&#41;;
			return 1;
		&#125;else if&#40;from.val&#40;&#41;.length > 0 && to.val&#40;&#41;.length < 1 &#41;&#123;
			$&#40;'#ckpages'&#41;.html&#40;'Στο πεδίο "Σελίδες" το "Έως" είναι κενό!<br />'&#41;;
			return 1;
		&#125;else if&#40;from.val&#40;&#41;.length > 0 && to.val&#40;&#41;.length > 0 &#41;&#123;
			if&#40;from.val&#40;&#41;.match&#40;"^&#91;0-9\&#93;+$"&#41; && to.val&#40;&#41;.match&#40;"^&#91;0-9\&#93;+$"&#41; &#41;&#123;
				if&#40;from.val&#40;&#41; == 0 || to.val&#40;&#41; == 0&#41;&#123;
					if&#40;from.val&#40;&#41; == 0 && to.val&#40;&#41; != 0&#41;&#123;
						$&#40;'#ckpages'&#41;.html&#40;'Στο πεδίο "Σελίδες" το "Από" είναι 0!<br />'&#41;;
						return 1;
					&#125;else if&#40;from.val&#40;&#41; != 0 && to.val&#40;&#41; == 0&#41;&#123;
						$&#40;'#ckpages'&#41;.html&#40;'Στο πεδίο "Σελίδες" το "Έως" είναι 0!<br />'&#41;;
						return 1;
					&#125;else&#123;
						$&#40;'#ckpages'&#41;.html&#40;'Στο πεδίο "Σελίδες" οι τιμές είναι 0!<br />'&#41;;
						return 1;
					&#125;
				&#125;else if&#40;from.val&#40;&#41; > to.val&#40;&#41;&#41;&#123;
					$&#40;'#ckpages'&#41;.html&#40;'Στο πεδίο "Σελίδες" το "Aπό" δεν μπορεί να είναι μεγαλύτερο από το "Έως"!<br />'&#41;;
					return 1;
				&#125;else&#123;
					$&#40;'#ckpages'&#41;.html&#40;''&#41;;
					return '';
				&#125;
			&#125;else&#123;
				if&#40;!from.val&#40;&#41;.match&#40;"^&#91;0-9\&#93;+$"&#41; && to.val&#40;&#41;.match&#40;"^&#91;0-9\&#93;+$"&#41; &#41;&#123;
					$&#40;'#ckpages'&#41;.html&#40;'Στο πεδίο "Σελίδες" το "Aπό" δεν είναι έγκυρο!<br />'&#41;;
					return 1;
				&#125;else if&#40;from.val&#40;&#41;.match&#40;"^&#91;0-9\&#93;+$"&#41; && !to.val&#40;&#41;.match&#40;"^&#91;0-9\&#93;+$"&#41; &#41;&#123;
					$&#40;'#ckpages'&#41;.html&#40;'Στο πεδίο "Σελίδες" το "Έως" δεν είναι έγκυρο!<br />'&#41;;
					return 1;
				&#125;else&#123;
					$&#40;'#ckpages'&#41;.html&#40;'Στο πεδίο "Σελίδες" οι τιμές δεν είναι έγκυρες!<br />'&#41;;
					return 1;
				&#125;
			&#125;
		&#125;else&#123;
			$&#40;'#ckpages'&#41;.html&#40;''&#41;;
			return '';
		&#125;
	&#125;

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Μια μικρή βοήθεια για τον κώδικά μου

Δημοσίευση από dva_dev » 01 Μαρ 2012 17:33

Όπου θέλεις να κάνεις σύγκριση με αριθμό βάλε το όρισμα Χ μέσα σε κάποιο από τα
Number( X )
parseFloat( X )
parseInt( X )
(X * 1)
(X / 1)
Π.χ. το

Κώδικας: Επιλογή όλων

if&#40;from.val&#40;&#41; == 0 || to.val&#40;&#41; == 0&#41;&#123;
κάνε το

Κώδικας: Επιλογή όλων

if&#40;Number&#40;from.val&#40;&#41;&#41; == 0 || Number&#40;to.val&#40;&#41;&#41; == 0&#41;&#123;
ή ακόμα καλύτερα κάνε το

Κώδικας: Επιλογή όλων

var from_val = Number&#40;from.val&#40;&#41;&#41;
var to_val = Number&#40;to.val&#40;&#41;&#41;
if &#40;from_val == 0 || to_val == 0&#41;&#123;
και χρησιμοποίησε τα from_val, to_val στα δεκάδες σημεία που χρησιμοποιείς τα αντίστοιχα from.val() και to.val()

Διαφορετικά δεν κάνεις σύγκριση με αριθμούς αλλά σύγκριση με strings και ως γνωστόν "1" < "9" συνεπώς "1000000" < "9"

rafinos
Δημοσιεύσεις: 301
Εγγραφή: 15 Μάιος 2011 00:20
Επικοινωνία:

Μια μικρή βοήθεια για τον κώδικά μου

Δημοσίευση από rafinos » 01 Μαρ 2012 17:41

Καλά εντάξει... πραγματικά έχει κολλήσει ο εγκέφαλος μου τελείως!!!!
Το κατάλαβα ότι έκανα σύγκριση string αλλά δεν στρόφαρα να το κάνω αριθμό στην σύγκριση!
Σ΄ευχαριστώ πολύ!!! Να 'σαι καλά!!!!

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες