如何使用 URL 参数用空值而不是 "undefined" 填充字段?

How do I populate fields with a blank value instead of "undefined" using URL Parameters?

我的 URL 使用我创建的 URL 参数预填充表单。目前,如果未设置该参数,则该值将由 "undefined" 填充。我希望它是空白的。

这是 link 网站的预填充表格:-

www.test.co.uk/test/?ID=0000000000&App=L3%20Business%20Administrator&DOB=19/8/2019&FName=Test&SName=Test&Emp=Skillswork

这是设置参数的脚本。我对脚本进行了哪些调整以填充空白值而不是 "undefined"?

<script text="text/javascript"> 
     var getUrlParameter = function getUrlParameter(sParam) {
         var sPageURL = decodeURIComponent(window.location.search.substring(1)),
             sURLVariables = sPageURL.split('&'),
             sParameterName,
             i;
         for (i = 0; i < sURLVariables.length; i++) {
             sParameterName = sURLVariables[i].split('=');
             if (sParameterName[0] === sParam) {
                 return sParameterName[1] === undefined ? true : sParameterName[1];


             }
         }
     };

     var VARIABLE = getUrlParameter('PARAMETER');

     if (VARIABLE != null) {
          document.getElementById('INPUT-FIELD-ID').value = VARIABLE;
     }

var NationalInsuranceNumber = getUrlParameter('Nin');
var Gender = getUrlParameter('Gen');
var Address = getUrlParameter('Add');
var Postcode = getUrlParameter('Pcode');
var Email = getUrlParameter('Email');
var Mobile = getUrlParameter('Mob');
var HomeNumber = getUrlParameter('Home');

document.getElementById('00N1n00000SwuWV').value = NationalInsuranceNumber;
document.getElementById('00N1n00000SwuWk').value = Gender;
document.getElementById('00N1n00000SwuWa').value = Address;
document.getElementById('00N1n00000SwuWf').value = Postcode;
document.getElementById('00N1n00000SwuWp').value = Email;
document.getElementById('00N1n00000SwuWu').value = Mobile;
document.getElementById('00N1n00000SwuWz').value = HomeNumber;
</script>

我希望用 "blank" 值而不是 "undefined"

填充字段

感谢您的所有帮助。

您可以使用三元运算符

var NationalInsuranceNumber = getUrlParameter('Nin') ? getUrlParameter('Nin') : ""

如果参数 Nin 为 null 或未定义,此代码会将“”分配给 NationalInsuranceNumber。

var NationalInsuranceNumber = getUrlParameter('Nin') || "";

shorthand 来自

if (getUrlParameter("Nin")) {
  NationalInsuranceNumber = getUrlParameter('Nin');
}else{
  NationalInsuranceNumber = getUrlParameter('Nin');
}

与其每次检查未定义的值(Ex Nin、Pcode 等),不如直接由 getUrlParameter 处理,我们可以在其中检查参数是否未定义,然后 return 空字符串 starightaway。

当找不到像这样的匹配时,从 getUrlParameter 函数return更好

function getUrlParameter(sParam) {
     var sPageURL = decodeURIComponent(window.location.search.substring(1)),
         sURLVariables = sPageURL.split('&'),
         sParameterName,
         i;
     for (i = 0; i < sURLVariables.length; i++) {
         sParameterName = sURLVariables[i].split('=');
         if (sParameterName[0] === sParam) {
             return sParameterName[1] === undefined ? true : sParameterName[1];


         }
     }
return '';
 };

或者让你的代码看起来更简单

function getUrlParameter(sParam) {
     var sPageURL = decodeURIComponent(window.location.search.substring(1)),
         found = sPageURL.split('&').find((p)=>p.includes(sParam))
        return found?found.split('=')[1]:'';
 };