سؤال

لدي رمز JQuery التالي في صفحتي:

var isChanged = false;
$(document).ready(function()
{
    $('.change').change(function() {
        isChanged = true;
    });
});

أنا أستخدم مؤشر إضافي يعدل قيمة مربع النص مرتبط باستخدام:

target.val('xxxx');

مربع النص في HTML (من ASP.NET) هو:

<input name="ctl00$cphHolder1$rptFlex$ctl01$txtLeftRank"
  type="text"
  value="52°"
  id="ctl00_cphHolder1_rptFlex_ctl01_txtLeftRank"
  class="change atiselector" />

عند تغيير قيمة مربع النص باستخدام التعليمات البرمجية، فإن التغيير لا يطلق النار. إذا اكتبت في مربع النص، فإن تغيير الحرائق. ماذا ينقصني؟

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

المحلول

هذه هي الطريقة التي يعمل بها. إذا كنت بحاجة إلى تغيير القيمة لتشغيل حدث "التغيير"، فيمكنك القيام بذلك صراحة عن طريق:

$('input#whatever').val('hi').change();

نصائح أخرى

$('.change').change() سوف النار الحدث. فقط تغيير السمات لا يطلق الحدث.

بالنسبة الى DOM المستوى 2 مواصفات الحدث:

يحدث حدث التغيير عند تفقد عنصر تحكم تركيز الإدخال وقد تم تعديل قيمته منذ اكتساب التركيز.

هذا يعني أن تغيير الحدث هو مصمم لإطلاق التغيير عن طريق تفاعل المستخدم. التغييرات البرمبية لا تسبب إطلاق هذا الحدث.

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