当他已经有信息时,如何使用 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>