Andaikan, saya tidak pasti jika ada authorities
(但如果存在,我希望选择它们)。如果没有选中的authorities
,我希望jQuery选择authorities
yang disemak, tidak kira sama ada ia dipilih (sebenarnya, ini bermakna mendapatkan semula nilai input tersembunyi). Pemikiran saya untuk menggunakan konsep "nilai sebenar"/"nilai palsu" JS untuk menangani situasi ini ialah:
let user = { id: $(this).find('[name=id]').val(), username: $(this).find('[name=username]').val(), password: $(this).find('[name=password]').val(), name: $(this).find('[name=name]').val(), lastName: $(this).find('[name=lastName]').val(), department: $(this).find('[name=department]').val(), salary: $(this).find('[name=salary]').val(), age: $(this).find('[name=age]').val(), email: $(this).find('[name=email]').val(), enabledByte: $(this).find('[name=enabledByte]').val(), authorities: JSON.parse($(this).find('[name=authorities]:checked').val()) || JSON.parse($(this).find('[name=authorities]').val()) };
Namun, ia tidak berkesan. Menariknya, ia berfungsi dalam coretan kod di bawah. Mungkinkah val()
在匹配失败时返回的undefined
不是“假值”吗?想想看!我最好的猜测是,当解析undefined
时,JSON.parse()
akan membuang ralat dan bukannya mengembalikan beberapa "nilai palsu" yang saya harapkan. Kaedah ini tidak menerima "param ATAU param", bukan?
Pada pendapat anda, bagaimanakah saya harus memberikan sandaran untuk situasi ini (selain itu, sudah tentu, menyemak "nilai palsu" authorities
yang dipilih secara individu, yang agak bertele-tele untuk citarasa saya)?
<头>
<元字符集=“UTF-8”>
<标题>Halaman pengurusan标题>
头>
<正文>
<标题>
Nama
Nama belakang
Jabatan
E-mel
标题>
<正文>
John
Jabatan Tenaga AS
IT
john_d@gmail.com
Jane
Jabatan Tenaga AS
Sumber Manusia
jane_d@gmail.com
表>
Isi borang
<表格>
<标签=“名称”>Nama: 标签>
形式>
<脚本>
$(document).ready(function() {
$('form').on('submit', fungsi tak segerak (event) {
event.preventDefault();
$('tbody').append(
`
${$(this).find('[name=name]').val()}
${$(this).find('[name=last-name]').val()}
${$(this).find('[nama=jabatan]').val()}
${$(this).find('[name=email]').val() || 'Tidak berkenaan'}
`
);
const SubmitButton = $(this).find('[type=submit]');
Bentuk malar = $(ini);
Hantar button.removeClass('btn-primary')
.addClass('btn-success')
.attr('value', 'User has been added!')
.attr('jenis', 'butang')
.click(() => $('[href="#users-table"]').tab('show'));
setTimeout(fungsi(){
commitButton.removeClass('btn-success')
.addClass('btn-primary')
.attr('nilai', 'serahkan')
.attr('Jenis
Masalahnya ialah jika pemilih tidak menjumpai sebarang padanan,
.val()
返回undefined
,而JSON.parse(undefined)
ia memberikan pengecualian.Laksanakan sandaran dalam senarai hujah
JSON.parse()
supaya anda akan menghuraikan sebarang nilai yang berjaya diperoleh.Bergantung pada penggunaan anda, anda mempunyai beberapa pilihan:
JSON.parse
。这将使它在解析之前回退到其他字符串,因此如果第一个值是undefined
,它不会出错。但是,如果两个值都是undefined
atau salah satu daripadanya adalah JSON tidak sah yang akan menyebabkan ralat.undefined
,您可以回退到null
。null
ialah nilai JSON yang sah, ia boleh dihuraikan. Walau bagaimanapun, jika mana-mana nilai JSON tidak sah, ralat masih akan berlaku.