簡體   English   中英

根據ajax響應更改單選按鈕值

[英]Change radio button value based on ajax response

我用默認對象將帶有JSViews的對象數組綁定在一起。 我正在用單選按鈕顯示默認值。 當我想將另一個對象設置為默認對象時,我需要進行ajax調用並將其更改為默認對象,僅當調用以預定義狀態成功時才使用。我正在對ajax請求使用promises。功能,單選按鈕的狀態不會改變。我嘗試了類似的方法,但是它不起作用。我假設由於我正在返回諾言,所以在返回諾言時它不會解析為true或false。 如何實現?

<input type="radio" name="default" data-link="checked{:isDefaultObj} {on ~setAsDefault}">

JS

setAsDefault:function(){
  return service.setAsDefaultObj('123').then(function(response){
        return response; //response is either true or false;
    },function(response){
       return response;
   });
 }

對於~setAsDefault您可以返回false,以便使用默認的click操作檢查輸入是否被跳過。

然后,我建議將數據鏈接的屬性與單選按鈕組相關聯,以便在諾言返回成功/錯誤之后,可以觀察到設置一個新的/原始的。

這是一個數據鏈接到selectedCar的示例,其中延遲設置了適當的值。

使用單向數據鏈接:

<label><input name="cars" type="radio" value="none" data-link="{:selectedCar} {on getAjax 'none'}"/>
  None</label><br/>
<label><input name="cars" type="radio" value="vlv" data-link="{:selectedCar} {on getAjax 'vlv'}"/>
  Volvo</label><br/>
<label><input name="cars" type="radio" value="frd" data-link="{:selectedCar} {on getAjax 'frd'}"/>
  Ford</label><br/><br/>

或使用您checked{...}方法

<label><input name="cars2" type="radio" value="none" data-link="checked{:selectedCar==='none'} {on getAjax 'none'}"/>
  None</label><br/>
<label><input name="cars2" type="radio" value="vlv" data-link="checked{:selectedCar==='vlv'}  {on getAjax 'vlv'}"/>
  Volvo</label><br/>
<label><input name="cars2" type="radio" value="frd" data-link="checked{:selectedCar==='frd'}  {on getAjax 'frd'}"/>
  Ford</label><br/><br/>

在每種情況下,請使用以下代碼方法:

var data = {
  selectedCar: "frd",
  getAjax: function(val) {
    var sel = data.selectedCar;
    $.ajax({
      type: 'GET',
      url: "../TEST" + val + ".html",
      timeout: 5000,
      success: function(){
        $.observable(data).setProperty("selectedCar", val);
      },
      error: function(xhr, textStatus, errorThrown){
        $.observable(data).setProperty("selectedCar", val);
        $.observable(data).setProperty("selectedCar", sel);
      }
    });
    return false;
  }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM