تحتاج إلى إرجاع صحيح أو خطأ بناءً على ما إذا كانت القيمة في حقل النص هي رقم محدد
-
26-09-2019 - |
سؤال
أتطلع إلى العودة إلى حد ما إذا دخل المستخدم 4 في حقل الإدخال.
function validateAddition() {
if($("#validateAddition").val() == 4) {
return true;
} else {
return false;
}
}
<input value=""
class="validate[required,onlyNumber,length[0,1]funcCall[validateAddition]] text-input"
type="text" id="validateAddition" name="validateAddition" />
أضاف هذا إلى ملف JS اللغة الإنجليزية:
"validateAddition":{
"nname":"validateAddition",
"alertText":"* Your math is off, try again."}
يجب أن يكون هذا على ما يرام ، اسمحوا لي أن أعرف ما تعتقد أنه خطأ.
المحلول
http://www.w3schools.com/jsref/jsref_parseint.asp
return (parseInt($('#validateAddition').val()) == 4)
تحرير: Moogoo صحيح ، كنت مخطئًا بقدر ما في شرحي.
ومع ذلك ، فإن فكرة استخدام +val ليست الأفضل. على الرغم من أن الطريقة المذكورة أعلاه ستعمل حيث تحتاج إلى حل أفضل بكثير على النحو التالي:
if(($('#validateAddition').val()-0) == 4)
السبب في أننا نريد -0 بدلاً من +0 هو ببساطة لأنه إذا كانت سلسلة وتريد إجراء أي عمليات إضافية في حالة ، فلن يكون لديك السلسلة الأصلية.
نصائح أخرى
إذا كنت ترغب في السماح لأحرف أخرى أيضًا وإرجاع صحيح فقط إذا كان نص حقل الإدخال يحتوي على 4 ، فيجب أن تفعل مثل هذا بدلاً من ذلك:
if($("#validateAddition").val().indexOf('4') != -1) {
من شأنه أن يجعل المقارنة بين القيمة بسلسلة ، لأن القيمة عبارة عن سلسلة. يتيح لك ذلك استخدام تساوي صارمة تجنب التحويلات التلقائية غير الضرورية. كما يمكنك تبسيط الوظيفة.
function validateAddition() {
return $("#validateAddition").val() === "4";
}
يمكنك وضع التحقق الخاص بك في ملف اللغة ، وتبدو شيئًا كهذا
"validateAddition": {
"regex": /[0-3]|[5-9]/,//something that matches on all numbers but four
"alertText": "* Your math is off, try again."
},