تحتاج إلى إرجاع صحيح أو خطأ بناءً على ما إذا كانت القيمة في حقل النص هي رقم محدد

StackOverflow https://stackoverflow.com/questions/3415951

سؤال

أتطلع إلى العودة إلى حد ما إذا دخل المستخدم 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."
},


مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top