当前位置: 代码迷 >> SharePoint >> 怎么通过jQuery获取查域项默认下拉框的change事件
  详细解决方案

怎么通过jQuery获取查域项默认下拉框的change事件

热度:219   发布时间:2016-05-02 07:03:36.0
如何通过jQuery获取查域项默认下拉框的change事件
需求如下:
   通过jQuery获取查域项默认下拉框的change事件,根据选择的值显示或隐藏下面的另外一栏

<tr>
<td nowrap="true" valign="top" width="190px" class="ms-formlabel"><h3 class="ms-standardheader">
<nobr>Account</nobr>
</h3></td>
<td valign="top" class="ms-formbody">
<!-- FieldName="Account"
 FieldInternalName="Account"
 FieldType="SPFieldLookup"
  -->
<span dir="none"><select name="ctl00$m$g_ccde1d47_3013_47b9_abf7_df57f0c572c8$ctl00$ctl05$ctl01$ctl00$ctl00$ctl04$ctl00$Lookup"
 id="ctl00_m_g_ccde1d47_3013_47b9_abf7_df57f0c572c8_ctl00_ctl05_ctl01_ctl00_ctl00_ctl04_ctl00_Lookup" title="Account">
<option selected="selected" value="0">(无)</option>
<option value="4">123456</option>
<option value="1">A_1</option>
<option value="2">A_2</option>
<option value="3">A_3</option>

</select><br></span>


</td>
</tr>

<script language="javascript" src="/Shared%20Documents/jquery.min1.3.js" type="text/javascript"></script><script type="text/javascript">

$(document).ready(function () {
alert('1');

$("nobr:contains('Account')").parent('h3').parent('td').parent('tr').find('select').change(function(){
var v=$(this).children('option:selected').val();
alert(v);
}
});</script>

JS是在新建表单中的内容编辑器中写的,不知道我什么地方写错了,打开后不会alert('1'),改变选项值也没有任何响应
------解决方案--------------------
你的的环境是2010  不知道行不行哦。

<select id="StatusSelect"> 
<option value ="Green">Green</option>
<option value ="Blue">Blue</option>
<option value="Amber">Amber</option>
<option value="Red">Red</option>
</select>

   $('#StatusSelect').change(function () {
            var color = $('#StatusSelect').val();
            //change the current color
              setProjectColor(color);
        
        
        })

function setProjectColor(color) {
    if (color == "Red") {
        $("#ColorTag").css("background-color","Red");
    } else if (color == "Green") {
        $("#ColorTag").css("background-color","Green");
    } else if(color == "Blue") {
        $("#ColorTag").css("background-color","Blue");
    } else if(color == "Amber") {
        $("#ColorTag").css("background-color","Yellow");
    }
}
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

需求如下:
   通过jQuery获取查域项默认下拉框的change事件,根据选择的值显示或隐藏下面的另外一栏
JS是在新建表单中的内容编辑器中写的,不知道我什么地方写错了,打开后不会alert('1'),改变选项值也没有任何响应

是SharePoint2013吗?据我所知2013的内容编辑器不能执行代码了,可以使用script editor(应该是脚本编辑器吧)。试一试脚本编辑器能不能alert出来,

是在sp2010环境下,上述的sj代码去除6到8行是可以执行alert('1')的

那就是6-8行出错了
你用IE的debug tool调试一下,错误会蹦出来的
------解决方案--------------------
http://www.cnblogs.com/jianyus/p/3812758.html
可能对你有所帮助
------解决方案--------------------
引用:
Quote: 引用:

感谢,可以获取到change事件了,但我通过val取值取的是value而不是显示的值,有相应方法吗 用text取的是所有显示的值空格间隔
<script language="javascript" src="/Shared%20Documents/jquery.min1.3.js" type="text/javascript"></script><script language="javascript" type="text/javascript">

$(document).ready(function(){
$('#ctl00_m_g_c6138c76_4b3c_471a_8d5f_06776e162522_ctl00_ctl05_ctl01_ctl00_ctl00_ctl04_ctl00_Lookup').change(function(){
var txt= $('#ctl00_m_g_c6138c76_4b3c_471a_8d5f_06776e162522_ctl00_ctl05_ctl01_ctl00_ctl00_ctl04_ctl00_Lookup').val();
    alert(txt);
  });
});</script>

使用text(),需要指定option:selected,试试这个:
<script language="javascript" src="/Shared%20Documents/jquery.min1.3.js" type="text/javascript"></script><script language="javascript" type="text/javascript">

$(document).ready(function(){
$('#ctl00_m_g_c6138c76_4b3c_471a_8d5f_06776e162522_ctl00_ctl05_ctl01_ctl00_ctl00_ctl04_ctl00_Lookup').change(function(){
var txt= $('#ctl00_m_g_c6138c76_4b3c_471a_8d5f_06776e162522_ctl00_ctl05_ctl01_ctl00_ctl00_ctl04_ctl00_Lookup option:selected').text();
  相关解决方案