当他已经有信息时,如何使用 javascript 检查共享点列表是否包含特定单词
How can I use javascript to check if a sharepoint list contains a specific word, when he is already have information
在我的网站上,我有列列表。像 "Status"(选择列。下拉菜单),当用户在完成时更改此列时需要提醒他。
HTML 列表代码和 JQuery 代码(过去在 WepPart 的脚本编辑器上)
$(document).ready(function(){
$(".ms-formbody").blur(function() {
var Text = $(this).val();
if (Text == "Finished") {
alert("Alert");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<tr>
<td width="113" class="ms-formlabel" nowrap="true" valign="top">
<span class="ms-h3 ms-standardheader" id="Status">
<nobr>Status
<span title="This is a required field." class="ms-accentText"> *</span>
</nobr>
</span>
</td>
<td width="350" class="ms-formbody" valign="top">
<!-- FieldName="Status"
FieldInternalName="Status"
FieldType="SPFieldChoice"
-->
<span dir="none">
<select title="Status Required Field" class="ms-RadioText" id="Status_30b2ab26-c1c0-48fd-b190-854b32fe67ca_$DropDownChoice">
<option value="Planned">Planned</option>
<option value="Development">Development</option>
<option value="Executing">Executing</option>
<option selected="selected" value="Finished">Finished</option>
<option value="Cancelled">Cancelled</option>
</select>
<br>
</span>
<span class="ms-metadata">Choice</span>
</td>
</tr>
使用下面的代码实现。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("select[title='Status Required Field']").change(function(){
if($(this).val()=="Finished"){
alert("Alert");
}
});
});
</script>
好的,这里有几个问题:
1) 您 select 在 jQuery 中输入的元素完全错误。目前它将匹配 <td
元素,但它没有任何更改或模糊事件,并且它也没有值。您需要获取下拉列表以检测它何时更改。鉴于下面的 HTML,您可以使用 <select
得到的 ms-RadioText
class。
2) "blur" 是要处理的错误事件 - 只有当用户在 select 编辑了一个值后将焦点从下拉列表中移开时才会发生这种情况。你不能指望这真的发生了。 "change" 是正确的事件。
3) 您对 select 更改时应该发生什么的确切要求不清楚,并且自问题发布以来(从评论中)似乎已经更改,所以我将举一个例子它只是在所有情况下报告新的 selected 值。如果你想做比这更具体的事情,你可以轻松地添加一个 if
语句或任何你需要的。
演示:
$(document).ready(function(){
$(".ms-RadioText").change(function() {
var Text = $(this).val();
alert(Text);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<tr>
<td width="113" class="ms-formlabel" nowrap="true" valign="top">
<span class="ms-h3 ms-standardheader" id="Status">
<nobr>Status
<span title="This is a required field." class="ms-accentText"> *</span>
</nobr>
</span>
</td>
<td width="350" class="ms-formbody" valign="top">
<!-- FieldName="Status"
FieldInternalName="Status"
FieldType="SPFieldChoice"
-->
<span dir="none">
<select title="Status Required Field" class="ms-RadioText" id="Status_30b2ab26-c1c0-48fd-b190-854b32fe67ca_$DropDownChoice">
<option value="Planned">Planned</option>
<option value="Development">Development</option>
<option value="Executing">Executing</option>
<option selected="selected" value="Finished">Finished</option>
<option value="Cancelled">Cancelled</option>
</select>
<br>
</span>
<span class="ms-metadata">Choice</span>
</td>
</tr>
在我的网站上,我有列列表。像 "Status"(选择列。下拉菜单),当用户在完成时更改此列时需要提醒他。
HTML 列表代码和 JQuery 代码(过去在 WepPart 的脚本编辑器上)
$(document).ready(function(){
$(".ms-formbody").blur(function() {
var Text = $(this).val();
if (Text == "Finished") {
alert("Alert");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<tr>
<td width="113" class="ms-formlabel" nowrap="true" valign="top">
<span class="ms-h3 ms-standardheader" id="Status">
<nobr>Status
<span title="This is a required field." class="ms-accentText"> *</span>
</nobr>
</span>
</td>
<td width="350" class="ms-formbody" valign="top">
<!-- FieldName="Status"
FieldInternalName="Status"
FieldType="SPFieldChoice"
-->
<span dir="none">
<select title="Status Required Field" class="ms-RadioText" id="Status_30b2ab26-c1c0-48fd-b190-854b32fe67ca_$DropDownChoice">
<option value="Planned">Planned</option>
<option value="Development">Development</option>
<option value="Executing">Executing</option>
<option selected="selected" value="Finished">Finished</option>
<option value="Cancelled">Cancelled</option>
</select>
<br>
</span>
<span class="ms-metadata">Choice</span>
</td>
</tr>
使用下面的代码实现。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("select[title='Status Required Field']").change(function(){
if($(this).val()=="Finished"){
alert("Alert");
}
});
});
</script>
好的,这里有几个问题:
1) 您 select 在 jQuery 中输入的元素完全错误。目前它将匹配 <td
元素,但它没有任何更改或模糊事件,并且它也没有值。您需要获取下拉列表以检测它何时更改。鉴于下面的 HTML,您可以使用 <select
得到的 ms-RadioText
class。
2) "blur" 是要处理的错误事件 - 只有当用户在 select 编辑了一个值后将焦点从下拉列表中移开时才会发生这种情况。你不能指望这真的发生了。 "change" 是正确的事件。
3) 您对 select 更改时应该发生什么的确切要求不清楚,并且自问题发布以来(从评论中)似乎已经更改,所以我将举一个例子它只是在所有情况下报告新的 selected 值。如果你想做比这更具体的事情,你可以轻松地添加一个 if
语句或任何你需要的。
演示:
$(document).ready(function(){
$(".ms-RadioText").change(function() {
var Text = $(this).val();
alert(Text);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<tr>
<td width="113" class="ms-formlabel" nowrap="true" valign="top">
<span class="ms-h3 ms-standardheader" id="Status">
<nobr>Status
<span title="This is a required field." class="ms-accentText"> *</span>
</nobr>
</span>
</td>
<td width="350" class="ms-formbody" valign="top">
<!-- FieldName="Status"
FieldInternalName="Status"
FieldType="SPFieldChoice"
-->
<span dir="none">
<select title="Status Required Field" class="ms-RadioText" id="Status_30b2ab26-c1c0-48fd-b190-854b32fe67ca_$DropDownChoice">
<option value="Planned">Planned</option>
<option value="Development">Development</option>
<option value="Executing">Executing</option>
<option selected="selected" value="Finished">Finished</option>
<option value="Cancelled">Cancelled</option>
</select>
<br>
</span>
<span class="ms-metadata">Choice</span>
</td>
</tr>