0
votes

Assignez 0 si la valeur est nulle ou vide dans Jquery

Je souhaite utiliser un opérateur ternaire pour l'instruction jQuery ci-dessous, comme si employee_salary est empty ou null , je veux attribuer la valeur 0 (zéro). Sinon, attribuez simplement la valeur réelle.

jQuery('#employee_form #employee_salary').val(parseInt(selected_table_data['employee_salary']))


0 commentaires

5 Réponses :


1
votes

Vous pouvez utiliser l'opérateur ternary simplement.

console.log('' || 0);
console.log(null || 0);
console.log(undefined || 0);

selected_table_data['employee_salary']
  ? parseInt(selected_table_data['employee_salary'])
  : 0


5 commentaires

vous ne vérifiez pas null? Je veux attribuer la valeur 0 s'il y a une valeur nulle ou vide.


Il vérifiera null , undefined ou empty . Essayez de console.log(null || 0);


Désolé, cela ne fonctionne pas. J'obtiens comme "NaN" si j'utilise votre solution.


Cela signifie alors que vous contenez des lettres différentes, sauf celles nulles et vides. Pouvez-vous partager le contenu selected_table_data['employee_salary'] pour les cas NaN ?


Le problème est l'utilisation de parseInt (chose) si la chose est nulle / non définie. Votre réponse ne correspond pas à vos exemples.



1
votes

const s1 = null;
console.log(s1 ? s1 : 'There was a null value');

const s2 = ''
console.log(s2 ? s2 : 'There was an empty string');

const s3 = 'value';
console.log(s3 ? s3 : 'There was no value');

Voici un exemple

var employee_salary = selected_table_data['employee_salary'];
var salary_form_value = employeeSalary ? parseInt(employee_salary) : '0';
jQuery('#employee_form #employee_salary').val(salary_form_value);

// If you want to inline it, you could do the following:

jQuery('#employee_form #employee_salary').val(
  selected_table_data['employee_salary']
    ? parseInt(selected_table_data['employee_salary']
    : 0
);


0 commentaires

1
votes

Utilisation || opérateur ou juste un simple opérateur ternaire fonctionnerait si son nom est null , undefined ou '' . Mais cela ne fonctionnera pas pour un espace vide comme celui-ci ' ' (puisque Boolean (' ') évalué comme vrai), ce qui n'est pas bon si vous voulez remplacer une chaîne vide ou des espaces vides pour zéro. Alors je vous suggère de faire quelque chose comme ça,

jQuery('#employee_form #employee_salary').val(parseInt(selected_table_data['employee_salary']) ? parseInt(selected_table_data['employee_salary']) : 0);

Cela vous permettra non seulement de vérifier si la chaîne nulle, non définie, vide et les espaces blancs, mais empêchera également NaN d'être une valeur sur votre formulaire (à la place, zéro aura lieu).


1 commentaires

J'ai essayé votre solution mais j'envoie toujours la valeur du salaire de l'employé sous la forme "NaN"



1
votes

Je soupçonne que parseInt était votre tentative de faire ce travail vous-même (assez juste). Je vais vous suggérer de le supprimer et d'essayer simplement

jQuery('#employee_form #employee_salary').val(selected_table_data['employee_salary'] || 0);


0 commentaires

1
votes

Une solution simple pour vous.

jQuery('#employee_form #employee_salary').val(selected_table_data['employee_salary'] * 1)


0 commentaires