Отключить столбец переключателя на другом переключателе с помощью jquery - PullRequest
0 голосов
/ 15 июля 2011

Я новичок в Jquery, в настоящее время работаю со списками Sharepoint.Здесь возникает ситуация с отключением столбца переключателей с опцией, выбранной в другом столбце переключателей.Радиокнопка column1 и Radio button column2 имеет два варианта каждый.Если опция 2 выбрана в столбце переключателей1, весь столбец переключателей2 должен быть отключен.Ниже приведен код, над которым я работаю

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
    </script>
    <script language="JavaScript">
$(document).ready(function() 
{
 $('input[name=Who will be developing the propose site?]').change(function(){
        if($(this).val() == 'Site Adminstrator')
        {
            $('input[name=Has site administrator attest to development operations of Rules of Road]').prop('disabled',true);
        }
        else
        {
            $('input[name=Has site administrator attest to development operations of Rules of Road]').prop('disabled',false);
        }
    });
    });
    </script>

Ниже приведен исходный код SharePoint для страницы (список SharePoint)

<TR><TD nowrap="true" valign="top" width="190px" class="ms-formlabel"><H3 class="ms-standardheader">
            <nobr>Who will be developing the propose site?</nobr>
        </H3></TD>
            <TD valign="top" class="ms-formbody" width="400px">
            <!-- FieldName="Who will be developing the propose site?"
                 FieldInternalName="Who_x0020_will_x0020_be_x0020_de"
                 FieldType="SPFieldChoice"
              -->
                <span dir="none"><table cellpadding="0" cellspacing="1">
        <tr>
            <td><span class="ms-RadioText" title="CSMS"><input id="ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl07_ctl00_ctl00_ctl04_ctl00_ctl00" type="radio" name="ctl00$m$g_7d3ef79b_83fe_4a1f_a469_42a8746f064e$ctl00$ctl04$ctl07$ctl00$ctl00$ctl04$ctl00$RadioButtons" value="ctl00" checked="checked" /><label for="ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl07_ctl00_ctl00_ctl04_ctl00_ctl00">CSMS</label></span></td>
        </tr><tr>
            <td><span class="ms-RadioText" title="Site Administrator"><input id="ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl07_ctl00_ctl00_ctl04_ctl00_ctl01" type="radio" name="ctl00$m$g_7d3ef79b_83fe_4a1f_a469_42a8746f064e$ctl00$ctl04$ctl07$ctl00$ctl00$ctl04$ctl00$RadioButtons" value="ctl01" /><label for="ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl07_ctl00_ctl00_ctl04_ctl00_ctl01">Site Administrator</label></span></td>
        </tr>
    </table></span></TD></TR>

            <TR><TD nowrap="true" valign="top" width="190px" class="ms-formlabel"><H3 class="ms-standardheader">
            <nobr>Has site administrator attest to development operations of Rules of Road</nobr>
        </H3></TD>
            <TD valign="top" class="ms-formbody" width="400px">
            <!-- FieldName="Has site administrator attest to development operations of Rules of Road"
                 FieldInternalName="Has_x0020_site_x0020_administrat"
                 FieldType="SPFieldChoice"
              -->
                <span dir="none"><table cellpadding="0" cellspacing="1">
        <tr>
            <td><span class="ms-RadioText" title="Yes"><input id="ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00" type="radio" name="ctl00$m$g_7d3ef79b_83fe_4a1f_a469_42a8746f064e$ctl00$ctl04$ctl08$ctl00$ctl00$ctl04$ctl00$RadioButtons" value="ctl00" checked="checked" /><label for="ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00">Yes</label></span></td>
        </tr><tr>
            <td><span class="ms-RadioText" title="No"><input id="ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl08_ctl00_ctl00_ctl04_ctl00_ctl01" type="radio" name="ctl00$m$g_7d3ef79b_83fe_4a1f_a469_42a8746f064e$ctl00$ctl04$ctl08$ctl00$ctl00$ctl04$ctl00$RadioButtons" value="ctl01" /><label for="ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl08_ctl00_ctl00_ctl04_ctl00_ctl01">No</label></span></td>
        </tr>
    </table></span></TD></TR>

Любая помощь или изменения в коде очень полезны

С уважением, БК

Ответы [ 3 ]

1 голос
/ 15 июля 2011

Здесь скрипка: http://jsfiddle.net/gm5N8/

Ваш код был слегка изменен, но я должен сказать, что у вас сумасшедшие имена / идентификаторы / значения. Они ужасны По крайней мере, у вас есть нечитаемые имена / идентификаторы, а ваши значения очень странные (например, ctl01 или ctl00). Эй, сделай что-нибудь с ними.

0 голосов
/ 17 июля 2011

Код ниже работал для меня.Спасибо за ваш вклад.может быть построен на коде для вводимых вами данных.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
    </script>
    <script language="JavaScript">
    $(document).ready(function()
    {
    $('#ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00').attr('disabled', 'disabled');
    $('#ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl08_ctl00_ctl00_ctl04_ctl00_ctl01').attr('disabled', 'disabled');
    OnTypeNotificationChange();
     function OnTypeNotificationChange()
    {             
    $('input[name=ctl00$m$g_7d3ef79b_83fe_4a1f_a469_42a8746f064e$ctl00$ctl04$ctl07$ctl00$ctl00$ctl04$ctl00$RadioButtons]').click(function(){

    if($(this).val() == "ctl00")
        {
    $('#ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00').attr('disabled', 'disabled');
    $('#ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl08_ctl00_ctl00_ctl04_ctl00_ctl01').attr('disabled', 'disabled');
        }
        else
        {
    $('#ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00').removeAttr('disabled');
    $('#ctl00_m_g_7d3ef79b_83fe_4a1f_a469_42a8746f064e_ctl00_ctl04_ctl08_ctl00_ctl00_ctl04_ctl00_ctl01').removeAttr('disabled');
        }
    });
      }
    });</script>
0 голосов
/ 15 июля 2011

Если я правильно смотрю на ваш код, имена, которые вы используете в jquery, не совпадают с автоматически сгенерированными именами sharepoint для входов.

Who will be developing the propose site?

против

ctl00$m$g_7d3ef79b_83fe_4a1f_a469_42a8746f064e$ctl00$ctl04$ctl07$ctl00$ctl00$ctl04$ctl00$RadioButtons

В противном случае код выглядит так, как будто он должен работать.

Вот что должно работать:

HTML:

<TR><TD nowrap="true" valign="top" width="190px" class="ms-formlabel"><H3 class="ms-standardheader">
        <nobr>Who will be developing the propose site?</nobr>
    </H3></TD>
        <TD valign="top" class="ms-formbody" width="400px">
        <!-- FieldName="Who will be developing the propose site?"
             FieldInternalName="Who_x0020_will_x0020_be_x0020_de"
             FieldType="SPFieldChoice"
          -->
            <span dir="none"><table cellpadding="0" cellspacing="1">
    <tr>
        <td><span class="ms-RadioText" title="CSMS"><input id="g1button1" type="radio" name="group1" value="CSMS" checked="checked" /><label for="g1button1">CSMS</label></span></td>
    </tr><tr>
        <td><span class="ms-RadioText" title="Site Administrator"><input id="g1button2" type="radio" name="group1" value="Site Adminstrator" /><label for="g1button1">Site Administrator</label></span></td>
    </tr>
</table></span></TD></TR>

        <TR><TD nowrap="true" valign="top" width="190px" class="ms-formlabel"><H3 class="ms-standardheader">
        <nobr>Has site administrator attest to development operations of Rules of Road</nobr>
    </H3></TD>
        <TD valign="top" class="ms-formbody" width="400px">
        <!-- FieldName="Has site administrator attest to development operations of Rules of Road"
             FieldInternalName="Has_x0020_site_x0020_administrat"
             FieldType="SPFieldChoice"
          -->
            <span dir="none"><table cellpadding="0" cellspacing="1">
    <tr>
        <td><span class="ms-RadioText" title="Yes"><input id="g2button3" type="radio" name="group2" value="ctl00" checked="checked" /><label for="g2button3">Yes</label></span></td>
    </tr><tr>
        <td><span class="ms-RadioText" title="No"><input id="g2button2" type="radio" name="group2" value="ctl01" /><label for="g2button2">No</label></span></td>
    </tr>
</table></span></TD></TR>

Jquery:

$('input[name=group1]').change(function()
{
    if($(this).val() == 'Site Adminstrator')
    {
        $('input[name=group2]').prop('disabled',true);
    }
    else
    {
        $('input[name=group2]').prop('disabled',false);
    }
});

Проверьте это здесь: http://jsfiddle.net/jL5A5/1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...