2017-08-31 57 views
0

我有我的網頁上的複選框。根據是否勾選複選框,變量abc_test需要更改爲「wfOutput」「_blank」價值變量不會被傳遞正確

在初始加載時,變量的值爲「wfOutput」,但出於某種原因,formTarget不會對基於變量值的更改做出反應。如果我手動更改變量,那麼一切正常並且formTarget接收到正確的值。

<input id='runwindow' type='checkbox'>  

var abc_test = "wfOutput"; 
$("#runwindow").change(function() { 
    if($(this).is(":checked")) { 
     abc_test = "_blank"; 
     return; 
    } 
     abc_test = "wfOutput"; 
}); 

abc_test變量在以下代碼示例中使用。

var ap = $("<div>").autoprompt(
{     
    wfdInfo:xmlInfo, 
    formTarget:abc_test, 
}).autoprompt("instance"); 

任何想法我做錯了什麼?

+0

我不知道該解決方案不熟悉'autoprompt'但問題是,設置autoprompt對象的時候,代碼第一次運行只能設置一次,因此它會使用abc_test'的'值在特定只有時間。您需要好歹動態獲取的價值,因爲你需要它,或更新值,當你處理支票變化事件 – musefan

+0

你能提供的'autoprompt'方法的詳細信息?如果這是一個插件,你可以提及並提供一個鏈接?如果它是你自己的代碼,那麼你應該這樣說,也許提供有關如何動態更新這些設置的信息 – musefan

+0

@musefan是它是一個自定義插件。不幸的是,我不能在這裏添加任何代碼。但是,每當複選框被選中或取消選中時,是否會有一種方法可以調用該對象?謝謝 – clde

回答

4

但由於某些原因formTarget不會對基於變量值的更改做出反應。

當你

var ap = $("<div>").autoprompt(
{     
    wfdInfo:xmlInfo, 
    formTarget:abc_test, 
}).autoprompt("instance"); 

價值abc_test被讀取並分配給初始化創建的對象的formTarget財產。之後,對象屬性和變量之間沒有正在進行的連接;改變abc_test後來有的對象屬性沒有影響

您需要致電autoprompt以更新您的change處理程序中的formTarget選項。大多數插件提供某種「更新」方法。

+0

嗯...說實話,我很想downvote這。雖然你已經明確了爲什麼它不起作用,但你並沒有真正提供解決問題的解決方案,因此它似乎是一個不完整的答案。當然,如果你提供了更新值的代碼,它會完成。 – musefan

+0

@musefan:你選擇任何一種方式。我認爲它回答了這個問題。您如何使用該特定插件的詳細信息不是必需的,因此將其作爲使用該插件的人的練習是合理的。 (我確實花了幾分鐘試圖找到希望的插件,我可以幫助他們與它*反正*,但是......) –

+0

是的,我想如果你無法找到該插件的信息,將是不合理的你爲其提供代碼。反思一下,你可能會盡可能地採取行動 – musefan