سؤال

أنا أحاول كتابة السيناريو بالتحقق من صحة إدخال المستخدم.مثل:الرسالة طول أكثر من 5 أو كلمة المرور و إدخالها كلمة السر المباراة.ولكن كيف يمكنني الحصول على أي مربع الإدخال في النموذج كان والنقر ؟ اعتدت

$(function() {
    $('#register input').keyup(function() {
        if ($('#username').val().length < 5) {
            $('a.username').text("Please fill");
        } else {
            $('a.username').text("");
        }

        if ($('#password').val().length < 5) {
            $('a.password').text("asdasd");
        } else {
            $('a.password').text("");
        }

    });
});​

و

مستخدم جديد اسم المستخدم

        <label for="password">Password</label> <input type="password" id="password" name="password"><a class="password"></a>

    </fieldset>
</form>

عند النقر فوق أحد عناصر المدخلات ، يتم تشغيل التعليمات البرمجية وأنه يرى أن الثانية إدخال كلمة السر هي أيضا ليست كاملة المجال الثاني <a> الوسم أيضا الحرائق.يجب استخدام عدة .keyup وظائف لكل عنصر ، أو هل هناك أي طريقة للحصول على أي عنصر والنقر ؟ مثل

if (clicked == $("input#username") && $('#username').val().length < 5) {
    $('a.username').text("Please fill");

} else {
    $('a.username').text("Please fill");

}​

ولكن هذا لا يعمل.أعتقد يجب أن يكون هناك شيء من هذا القبيل.

هل كانت مفيدة؟

المحلول

يمكنك استخدام $(this) داخل معالج الإشارة إلى عنصر keyup الحدث وقع يوم.كما يمكنك استخدام .next() الانتقال من ذلك إلى <a> كنت وضع نص, مثل هذا:

$('#register input').keyup(function(){
  $(this).next().text($(this).val().length < 5 ? "Please fill" : "");
});

نصائح أخرى

كقاعدة عامة, يجب عليك استخدام حدث معين ملزم إذا كنت ترغب في الحصول على أحداث معينة, بدلا من الحصول على كل منهم والقيام الترشيح الخاصة بك.(إذا كنت تريد أن تفعل ذلك بطريقة أخرى, كنت تريد أن ننظر إلى إما this, $(this) أو الحدث, اعتمادا.)

ومع ذلك ، من أجل التحقق من صحة النموذج, هناك بالفعل البرمجية للقيام بذلك.على سبيل المثال ، التحقق من صحة مسج البرنامج المساعد العامة التحقق من صحة النموذج ، تمديد خصيصا كلمات السر.في مكانك على الأقل تبدأ مع واحدة من تلك بدلا من بناء الأشياء من الصفر.

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