سؤال

أقوم بتعطيل مجموعات من أزرار الراديو عندما ينقر المستخدم على خانة اختيار ، فقط باستخدام javaScript RAW والخاصية المعوقة.

وظيفتي تافهة:

function toggleEnabled(elementId) {
  e = document.getElementById(elementId)
  e.disabled = !e.disabled;
}

ويسمى حدث OnClick مثل OnClick = "ToggleEnabled ('Radio_Div')"

إنه يعمل بشكل رائع ، ولكن إذا نقر المستخدم مرة أخرى ، يبدو أن المتصفح يتذكر حالة مربع الاختيار ، ولكنه يعيد تعيين حالة المكونات في DIV إلى كل ما كانت عليه في الأصل.

هذا في IE7 ، ولا أريد استخدام مكتبة JS الآن ، لذا يرجى عدم وجود اقتراحات بهذا المعنى.

أفعل شيئا خاطئا؟ هل هناك حل للحصول على السلوك المقصود (تذكر حالة كل من مربع الاختيار و DIV على الظهر)؟

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

المحلول

يجب عليك تحديد كل قيمة مربع راديو في طريقة Onload الخاصة بك:

var selects = document.getElementByTagName("select");
for ( var i = 0 ; i < selects.length ; i ++ )
{
    //call your code if an option is checked
    if ( selects.options[selects.selectedIndex] )
    { 
        var selectedOption = selects.options[selects.selectedIndex];
        //now you got your option and can enable the div.
        toggleEnabled('radio_div');// <-- change this depending on selectedOption
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top