【问题标题】:use a message from a json object in sweetalert2在 sweetalert2 中使用来自 json 对象的消息
【发布时间】:2021-03-22 09:59:01
【问题描述】:

我使用 sweetalert2,通常我使用以下代码:

Swal.fire('my custom title','my custom message','info);

这很好用。 我想参数化从 json 中提取一条消息的消息。所以我构建了以下内容:

var messages={
  margine: "Il margine è la somma del margine dei mesi precendenti e del margine per mese del mese attuale.", 
  margine_mese: "Il margine per mese è calcolato come differenza tra le entrate del mese e le uscite del mese stesso, senza tenere conto di quanto avvenuto in precedenza",
  radio_cassa: "Il budget per cassa calcola i movimenti nella data in cui creano un movimento di entrata o uscita. I movimenti della carta di credito sono considerati nel mese in cui il relativo saldo viene addebitato in banca", 
  radio_competenza: "Il budget per competenza calcola i movimenti nella data di esecuzione. I movimenti della carta di credito saranno considerati nel mese in cui sono effettuati"
}

我的代码变成了:

var messages = {
  margine: "Il margine è la somma del margine dei mesi precendenti e del margine per mese del mese attuale.",
  margine_mese: "Il margine per mese è calcolato come differenza tra le entrate del mese e le uscite del mese stesso, senza tenere conto di quanto avvenuto in precedenza",
  radio_cassa: "Il budget per cassa calcola i movimenti nella data in cui creano un movimento di entrata o uscita. I movimenti della carta di credito sono considerati nel mese in cui il relativo saldo viene addebitato in banca",
  radio_competenza: "Il budget per competenza calcola i movimenti nella data di esecuzione. I movimenti della carta di credito saranno considerati nel mese in cui sono effettuati"
}

$('#myButton').click(function() {
  var what = $(this).data('value');
  console.log(what);
  Swal.fire('Info', messages.what, 'info');
  console.log(messages.what);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/sweetalert2@10"></script>

<button id="myButton" data-value="message">Click me</button>

我正确识别了我应该打印什么消息,但我无法返回相应的值并将其作为消息打印。我的代码有什么问题?

【问题讨论】:

    标签: javascript jquery json sweetalert2


    【解决方案1】:

    要使用保存对象名称的变量访问对象的属性,您需要使用括号表示法。

    还要注意messagedata 属性值与演示对象中的任何属性都不匹配。在示例中,我已更正您 HTML 中的错误。

    var messages = {
      margine: "Il margine è la somma del margine dei mesi precendenti e del margine per mese del mese attuale.",
      margine_mese: "Il margine per mese è calcolato come differenza tra le entrate del mese e le uscite del mese stesso, senza tenere conto di quanto avvenuto in precedenza",
      radio_cassa: "Il budget per cassa calcola i movimenti nella data in cui creano un movimento di entrata o uscita. I movimenti della carta di credito sono considerati nel mese in cui il relativo saldo viene addebitato in banca",
      radio_competenza: "Il budget per competenza calcola i movimenti nella data di esecuzione. I movimenti della carta di credito saranno considerati nel mese in cui sono effettuati"
    }
    
    $('#myButton').click(function() {
      var what = $(this).data('value');
      Swal.fire('Info', messages[what], 'info');
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="//cdn.jsdelivr.net/npm/sweetalert2@10"></script>
    <button id="myButton" data-value="margine">Click me</button> <!-- eg. 'margine' not 'message' -->

    【讨论】:

    • 不匹配是错字,感谢您的修复。重点是:消息来自 PHP,带有 json_encode。这是否返回一个 javascript 对象以使用json.stringify 转换为 json?我希望 json_encode 直接返回一个有效的 json!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 2019-03-11
    相关资源
    最近更新 更多