2

我有一个包含此代码的页面:

<span class="cbCoreFieldsAjaxValue">
<label id="hidetodo1" style="color: #e05817;">
<strong>Click here</strong>
</label>
</span>

当用户单击(是一个 Ajax 链接)时,代码变为:

<span class="cbCoreFieldsAjaxValue" style="display: inline-block;">Yes</span>

当值为是时,我想执行页面重新加载/刷新。我想有必要使用这样的东西:

if {
document.getElementById('hidetodo1').value="Yes";
location.reload();
}

但这当然行不通,因为我对javascript的了解太差了:-(

我无法访问所有 html,但如果需要,我可以进行一些修改。

有人可以帮忙吗?

感谢

4

3 回答 3

0

我建议您应该window.location.reload()在 XHR 请求的成功处理程序中执行。那将是最好的做法。

但正如您的问题所说:您想在更改 span 内容时重新加载您的页面,这里有几点您可能会喜欢/觉得有用。

  1. 您只能使用 jquery 检测特定元素上的更改事件。这些元素是选择、输入和文本区域。在这里阅读更多
  2. 据我所知,您无法使用简单的 javascript 或 jquery 检测其他元素的更改事件。
  3. 看看如何识别元素的内容变化

再一次,最佳实践是在成功处理程序中执行(重新加载)。

于 2013-05-10T18:02:30.763 回答
0

内部<span class="cbCoreFieldsAjaxValue">使用:

<label id="hidetodo1" style="color: #e05817;">
<strong>Click here</strong>
</label>

在点击之前和类似的东西:

<label id="hidetodo1" style="color: #e05817;">Yes</label>

点击后。

然后:

if (document.getElementById('hidetodo1').innerHTML == "Yes"){
    location.reload();
}

(如果您id="hidetodo1"在脚本中将 用于任何其他目的,请确保此新代码不会导致任何问题,因为 id "hidetodo1" 现在在单击后仍然存在。)

于 2013-05-10T17:30:41.113 回答
0

您的 if 语句不正确。if 语句缺少条件

if /*WHERE IS THE CONDITIONAL STATEMENT??*/
{
document.getElementById('hidetodo1').value="Yes";
location.reload();
}

我认为您正在寻找的是:

if (document.getElementById('hidetodo1').value=="Yes") //When the value is "Yes"
{

   location.reload();//Reload the current page
}

更新

根据评论,hidetodo1元素是一个-Label<label>没有 value 属性。

我猜你错过了代码中的一个文本框。在标签后添加文本框的 html 代码,并在 getElementById 参数中使用文本框的id

于 2013-05-10T17:33:19.360 回答