如果更改了特定文本值,请重新加载页面

时间:2013-05-10 17:28:57

标签: javascript

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

<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>

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

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

但这当然不起作用,因为我对javascript的了解太差了: - (

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

有人可以帮忙吗?

感谢

3 个答案:

答案 0 :(得分: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”在单击后仍处于停留状态。)

答案 1 :(得分: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
}

<强> UPD

根据评论, hidetodo1 元素是<label> - 标签没有值属性。

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

答案 2 :(得分:0)

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

但是正如你的问题所说:你想在改变跨度内容时重新加载页面,这里有一些你可能喜欢/有用的点。

  1. 您只能使用jquery检测特定元素的更改事件。这些元素是select,input和textarea。阅读更多here.
  2. 您无法使用简单的javascript或jquery检测我所知道的其他元素的更改事件。
  3. 查看How to identify content change of an element
  4. 再一次,最佳做法是在成功处理程序中执行(重新加载)。