使用jquery禁用另一个单选按钮上的单选按钮列

时间:2011-07-15 19:30:47

标签: jquery sharepoint

我是Jquery的新手,目前正在使用Sharepoint列表。这里有一种情况可以禁用单选按钮列,并在另一个单选按钮列中选择该选项。 单选按钮column1和单选按钮column2各有两个选项。如果在单选按钮列1中选择了选项2,则应禁用整个单选按钮列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>

代码中的任何帮助或修改都非常有用

亲切的问候 BK

3 个答案:

答案 0 :(得分:1)

这里的小提琴:http://jsfiddle.net/gm5N8/

你的代码被轻微修改但我不得不说你有疯狂的名字/ ids /值。他们太可怕了。至少你有不可读的名字/ ID,你的价值很奇怪(比如ctl01ctl00)。嘿,跟他们做点什么。

答案 1 :(得分:0)

如果我正确查看您的代码,您在jquery中使用的名称与输入的sharepoint自动生成名称不匹配。

Who will be developing the propose site?

VS

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/

答案 2 :(得分:0)

以下代码对我有用。感谢您的所有投入。能够建立你提供的输入的代码。

<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>