Javascript 基于填充输入字段的多变量条件输出

Javascript 基于填充输入字段的多变量条件输出,javascript,Javascript,我正在开发一个小型UTM builder工具,它根据用户在多个输入字段中输入的文本输出一个长URL,如下所示: <input id="utm_website" placeholder="https://" onkeyup="formChanged()" onchange="formChanged()"> 我对JavaScript非常陌生,我的“解决方案”感觉太复杂了,如果两个非必填字段中的一个以随机顺序

我正在开发一个小型UTM builder工具,它根据用户在多个输入字段中输入的文本输出一个长URL,如下所示:

<input id="utm_website" placeholder="https://" onkeyup="formChanged()" onchange="formChanged()">
我对JavaScript非常陌生,我的“解决方案”感觉太复杂了,如果两个非必填字段中的一个以随机顺序使用,则无法工作。我已经搜索了一个解决方案,但由于缺乏JavaScript知识,我可能使用了错误的搜索词


是否有办法更改代码以使其正常工作?

如果定义了字段,则只需附加字段,而不是每次都创建一个全新的URL字符串

首先检查所需参数的定义是否与您现在所做的相同

if( utmWebsite && utmSource && utmMedium ){
    utmLink = utmWebsite + enrichSource + enrichMedium;
}
然后在同一块中,检查每个可选块,并在定义时附加它

if( utmWebsite && utmSource && utmMedium ){
    utmLink = utmWebsite + enrichSource + enrichMedium;
    
    if(utmName) utmLink += enrichName;
    if(utmTerm) utmLink += enrichTerm;
    if(utmContent) utmLink += enrichContent;

    document.getElementById('utm_result').innerHTML=utmLink;
}

非常感谢您的回答@David工作得非常好,直到现在才知道
+=
操作符。
if( utmWebsite && utmSource && utmMedium ){
    utmLink = utmWebsite + enrichSource + enrichMedium;
    
    if(utmName) utmLink += enrichName;
    if(utmTerm) utmLink += enrichTerm;
    if(utmContent) utmLink += enrichContent;

    document.getElementById('utm_result').innerHTML=utmLink;
}