選択した authorities
が存在するかどうかわからないとします (ただし、存在する場合は選択してもらいたいと考えます)。 authorities
が選択されていない場合、選択されているかどうかに関係なく、jQuery で authorities
を選択するようにします (実際には、これは非表示の入力の値を取得することを意味します)。この状況に対処するために JS の「真の値」/「偽の値」の概念を使用することについての私の考えは次のとおりです。
リーリー
val() によって返される
unknown は「偽値」ではないでしょうか?考えてみてください!私の最善の推測は、
unknown が解析されるときに、
JSON.parse() が、私が期待するような「偽の値」を返すのではなく、エラーをスローするということです。このメソッドは「param OR param」を受け入れませんよね?
この状況にフォールバックを提供するにはどうすればよいと思いますか? (もちろん、選択した authorities を個別に「偽の値」かどうかチェックすることは別ですが、これは少し冗長です)私にとって) ?
<头>
<元字符集=“UTF-8”>
管理ページ<标题>
标题>
头>
<正文>
###名前###
###姓###
###部門###
###Eメール###
<标题>
ジョン
米国エネルギー省
###それ###
john_d@gmail.com
###単純###
标题>米国エネルギー省<正文>
###人事###
jane_d@gmail.com
###フォームに記入###
###名前:###
###姓:###
###部門:###
###それ###
###人事###
会計
###Eメール:###
表>
<表格>
<标签=“名称”>
<脚本>
$(document).ready(function() {
$('form').on('submit', 非同期関数 (イベント) {
イベント.preventDefault();
$('tbody').append(
`
${$(this).find('[name=name]').val()}
${$(this).find('[name=姓]').val()}
${$(this).find('[名前=部門]').val()}
${$(this).find('[name=email]').val() || '該当なし'}
`
);
const SubmitButton = $(this).find('[type=submit]');
定数形式 = $(this);
送信 button.removeClass('btn-primary')
.addClass('btn-成功')
.attr('値', 'ユーザーが追加されました!')
.attr('タイプ', 'ボタン')
.click(() => $('[href="#users-table"]').tab('show'));
setTimeout(function(){
commitButton.removeClass('btn-success')
.addClass('btn-primary')
.attr('値', '送信')
.attr('タイプ全員に返信(2)返信します
P粉8183062802023-09-11 00:47:41
問題は、セレクターが一致するものを見つけられなかった場合、.val()
は unknown
を返すのに対し、JSON.parse(unknown)
はスローすることです。例外 。
JSON.parse()
のパラメータ リストでフォールバックを実行して、正常に取得された値を解析します。
リーリー返事0P粉5613239752023-09-11 00:35:45
ユースケースに応じて、いくつかのオプションがあります:
- このように
JSON.parse
を組み合わせることができます。これにより、解析する前に他の文字列にフォールバックするため、最初の値が 未定義
であってもエラーは発生しません。ただし、両方の値が unknown
である場合、またはどちらかの値が無効な JSON である場合は、エラーが発生します。
リーリー
- 値が有効な JSON または
未定義
であることがわかっている場合は、null
にフォールバックできます。 null
は有効な JSON 値であり、解析できます。ただし、いずれかの値が無効な JSON である場合は、やはりエラーが発生します。
リーリー
- いずれかの値が無効な JSON である可能性がある場合は、try/catch ブロックで囲むことができます。こうすることで、たとえ無効であってもエラーはスローされません。これは最も安全なオプションであり、決して間違いはありません。
リーリー返事0キャンセル