Jquery 如何获取每个下拉列表和文本区域行的id
不确定解决这个问题的正确方法是什么 我想根据下拉列表中选择的内容控制te textarea原因。正如您在下面看到的,我已经到了可以获取下拉列表状态的每一行的属性id的阶段,但是我无法获取每个textarea状态的属性id 我的最终结果应该是,如果用户选择拒绝,那么用户只需输入原因,如果停用,则必须输入日期。提前谢谢Jquery 如何获取每个下拉列表和文本区域行的id,jquery,sharepoint-designer,Jquery,Sharepoint Designer,不确定解决这个问题的正确方法是什么 我想根据下拉列表中选择的内容控制te textarea原因。正如您在下面看到的,我已经到了可以获取下拉列表状态的每一行的属性id的阶段,但是我无法获取每个textarea状态的属性id 我的最终结果应该是,如果用户选择拒绝,那么用户只需输入原因,如果停用,则必须输入日期。提前谢谢 <tr> <td class="ms-vb"><span dir="none"> <select class="ms-RadioText"
<tr>
<td class="ms-vb"><span dir="none">
<select class="ms-RadioText" title="Status" id="WebPartManager_g_31f0d9e1_72a0_4ef2_b286_7c30cd0fda1f_ff5_3_ctl00_DropDownChoice" name="WebPartManager$g_31f0d9e1_72a0_4ef2_b286_7c30cd0fda1f$ff5_3$ctl00$DropDownChoice">
<option value="Provisionally Approved" selected="selected">Provisionally Approved
</option>
<option value="Approved">Approved</option>
<option value="Declined">Declined</option>
<option value="Deactivated">Deactivated</option>
</select><br>
</span></td>
<td class="ms-vb">
<span dir="none">
<textarea dir="none" class="ms-long" title="Reason" id="WebPartManager_g_31f0d9e1_72a0_4ef2_b286_7c30cd0fda1f_ff11_3_ctl00_ctl00_TextField" cols="20" rows="6" name="WebPartManager$g_31f0d9e1_72a0_4ef2_b286_7c30cd0fda1f$ff11_3$ctl00$ctl00$TextField" style="display: none;">Test3</textarea><br>
</span></td>
</tr>
$(document).ready(function(){
$("textarea").hide();
$("input[title$='DeActivatedDate']").hide();
$("tr select[title='Status']").change(function () {
var selectedValue = $(this).find("option:selected").text();
if (selectedValue == 'Declined')
{
alert('You need to type in a Reason if STATUS is DECLINED!');
//i'm getting the id of each dropdown row here
var select_id = $(this).attr('id');
var b = $("#" + select_id).text();
alert(select_id);
//i can get the id of each Dropdown of each row
//i'm getting the id of each textarea row here
var textarea_id = $("tr td textarea").attr('id');
var c = $("#" + textarea_id).text();
alert(textarea_id);
//i'm only getting the attr id of the first textarea but not the other
}
if (selectedValue == 'Deactivated')
{
alert('You need to select a De-Activated Date if STATUS IS DEACTIVATED!');
}
});
});
临时批准
经核准的
拒绝
解散
测试3
$(文档).ready(函数(){
$(“textarea”).hide();
$(“输入[标题$='DeActivatedDate'])。隐藏();
$(“tr选择[title='Status'])。更改(函数(){
var selectedValue=$(this).find(“选项:selected”).text();
如果(selectedValue==‘谢绝’)
{
警报('如果状态为谢绝,则需要键入原因!');
//我在这里得到每一个下拉行的id
var select_id=$(this.attr('id');
var b=$(“#”+选择_id).text();
警报(选择_id);
//我可以获得每行的每个下拉列表的id
//我在这里获取每个textarea行的id
var textarea_id=$(“tr td textarea”).attr('id');
var c=$(“#”+textarea_id).text();
警报(textarea_id);
//我只获取第一个文本区域的属性id,而不获取另一个文本区域的属性id
}
如果(selectedValue==“已停用”)
{
警报('如果状态为停用,则需要选择停用日期!');
}
});
});
仅获取匹配集中第一个元素的属性值
因此:
var select_id = $(this).attr('id');
之所以有效,是因为此
是
元素,因此只有一个元素。
一个:
var textarea_id = $("tr td textarea").attr('id');
只需获取第一个
的id
属性。如果需要所有
元素,请使用:
如果您有一个DOM对象(this
在每个
中),您不需要使用attr
来获取ID,您可以直接访问该属性
如果您只需要与
位于同一行的
(如注释中所述),则可以使用向上走一点DOM,然后再向下走:
var textarea_id = $(this).closest('tr').find('textarea').attr('id');
表行中有多个
元素,您需要全部元素,然后将这两种方法结合起来:
$(this).closest('tr').find('textarea').each(function() {
// ...
});
谢谢但我不需要所有textarea的id。我只需要与dropdownlist位于同一行的id。我需要将所选项目与textarea框中的值进行比较。如果选择的值被拒绝,那么用户必须在文本区域的相应行中添加一些文本。Thank mu太短将尝试让您知道Thank Alo mu太短您可以点击
$(this).closest('tr').find('textarea').each(function() {
// ...
});