Альпака setValue не заменяет значение при обновлении с Json объектом - PullRequest
1 голос
/ 10 марта 2020

Использование альпаки js Я пытаюсь использовать setValue для изменения значения поля
Я создал этот простой пример для одной формы ввода, чтобы при нажатии кнопки «обновить ввод»
ввод был обновлен с новым значением, «НОВОЕ ЗНАЧЕНИЕ»
Любая идея, почему она не работает?

$(document).ready(function(){
	createForm("firstName","First Name","OLD VALUE","string");  
});


function updateForm(){
 alert(JSON.stringify($("#alpacaForm").alpaca().getValue(), null, "  "));
 $("#alpacaForm").alpaca().setValue('{"fieldName": "NEW VALUE"}');
}
function createForm(fieldName,fieldLable,fieldVal,fieldType){

$("#alpacaForm").alpaca({
    "data": { fieldName: fieldVal },
    "schema": {
        "type": "object",
        "properties": {
            fieldName: {
                "type": fieldType,
                "title": fieldLable
            }
        }
    }
});

}
<!-- jquery -->
        <script type="text/javascript" src="//code.jquery.com/jquery-1.11.1.min.js"></script>
 
        <!-- bootstrap -->
        <link type="text/css" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
        <script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
 
        <!-- handlebars -->
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.5/handlebars.js"></script>
 
        <!-- alpaca -->
        <link type="text/css" href="//cdn.jsdelivr.net/npm/alpaca@1.5.27/dist/alpaca/bootstrap/alpaca.min.css" rel="stylesheet" />
        <script type="text/javascript" src="//cdn.jsdelivr.net/npm/alpaca@1.5.27/dist/alpaca/bootstrap/alpaca.min.js"></script>
        
<script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js"></script>



<div id="alpacaForm" ></div>
<button onclick="updateForm()">update input</button>

1 Ответ

1 голос
/ 19 марта 2020

Form.setValue должен быть передан объект.

$(document).ready(function() {
  createForm("firstName", "First Name", "OLD VALUE", "string");
});


function updateForm() {
  alert(JSON.stringify($("#alpacaForm").alpaca().getValue(), null, "  "));
  $("#alpacaForm").alpaca().setValue({"firstName": "NEW VALUE"});
}

function createForm(fieldName, fieldLable, fieldVal, fieldType) {

  $("#alpacaForm").alpaca({
    "data": {
      [fieldName]: fieldVal
    },
    "schema": {
      "type": "object",
      "properties": {
        [fieldName]: {
          "type": fieldType,
          "title": fieldLable
        }
      }
    }
  });

}
<!-- jquery -->
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.1.min.js"></script>

<!-- bootstrap -->
<link type="text/css" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>

<!-- handlebars -->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.5/handlebars.js"></script>

<!-- alpaca -->
<link type="text/css" href="//cdn.jsdelivr.net/npm/alpaca@1.5.27/dist/alpaca/bootstrap/alpaca.min.css" rel="stylesheet" />
<script type="text/javascript" src="//cdn.jsdelivr.net/npm/alpaca@1.5.27/dist/alpaca/bootstrap/alpaca.min.js"></script>

<script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js"></script>



<div id="alpacaForm"></div>
<button onclick="updateForm()">update input</button>
...