如何使用 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]:'';
};
我的 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]:'';
};