我正在处理共享点编辑表单,我们可以定义一个名为PreSaveItem()
的函数,该函数将在表单提交到服务器之前执行,如下所示:-
<script language="javascript" type="text/javascript">
function PreSaveItem(){
var result = true;
var status=$("select[id*='Status_'] option:selected").text();
if (status == "Closed") {
var analysis = $('input[id^="Analysis_"]').val().trim();
alert(analysis);
alert(Date.now());
if (analysis == "") {
alert("Please Enter Analysis before closing the item");
result = false;
}
}
return result;
}
</script>
如果用户将状态为“ Analysis”的输入字段留空,则上述脚本将显示和alert(),如果用户将状态更改为“已关闭”。但是当脚本正在读取$('input[id^="Analysis_"]').val().trim();
的更新值时,似乎遇到了缓存问题。如下:-
alert("Please Enter Analysis before closing the item");
收到此警报。alert(analysis);
仍将显示旧的空值,而alert(Date.now());
将显示更新的日期时间..看来var status=$("select[id*='Status_'] option:selected").text();
正在被缓存吗?
同样奇怪的是$("select[id*='Status_'] option:selected").text()
没有被缓存... 答案 0 :(得分:0)
警报后清除值。
<script language="javascript" type="text/javascript">
function PreSaveItem(){
var result = true;
var status=$("select[id*='Status_'] option:selected").text();
if (status == "Closed") {
var analysis = $('input[id^="Analysis_"]').val().trim();
alert(analysis);
alert(Date.now());
if (analysis == "") {
alert("Please Enter Analysis before closing the item");
result = false;
var analysis = undefined;
}
}
return result;
}
</script>
答案 1 :(得分:0)
尽管显然没有得到您想要达到的目标,但建议您更新所选文本的方法。可能有效 假设您的选择选项如下
<select id="CountryName">
<option>India</option>
<option>Australia</option>
<option>England</option>
</select>
要获取所选文本,您可以通过以下方式直接获取所选文本:
var getSelected = $('#CountryName').find(":selected").text();