2016-12-06 5 views
2

次のコードがあります。onchangeを使用して生成されたリンクを出力します

JS:

function generateLink() 
{ 
    var car = document.getElementById('cars').value; 
    var year = document.getElementById('years').value; 

    if(car == "fiat" || car == "honda" || car == "mitsu" || car == "acura" || car == "ford") 
     document.ref.action ='http://' + year + '.' + car + '.domain.net'; 
    else if(car == "audi" || car == "volvo" || car == "mazda" || car == "nissan" || car == "porsche" || car == "wholesale") 
     document.ref.action ='http://' + year + '.' + car + '.domain.net/Sales.jsp'; 
    else if(car == "BMW") 
     document.ref.action ='http://' + year + '.' + car + '.domain.net/container.jsp'; 
    else 
     document.ref.action ='/error-pages/404.html'; 
    return true; 
} 

function showLink() 
{ 
document.getElementById("years").innerHTML = "Link: " + generateLink(); 
} 

** HTML:ユーザーがyearsフィールドを変更した後

<h1>Ref</h1> 
<form name="ref" onsubmit="return generateLink();" target="_blank"> 

<div style="margin: 0 auto; width:500px;"> 

    <div style="float:left;"><span>PICK A CAR</span><br> 
    <select id="cars"> 
    … 
    </select> 
    </div> 

    <div style="float:right;"><span>PICK A YEAR</span><br> 
    <select id="years" onchange="showLink()"> 
    … 
    </select> 
    </div> 

    <div style="float:left; margin-left:190px; margin-right: 40px; margin-top:70px;"> 
    <a href=generateLink() id="link"></a> 
    <input type="submit" value="Go to Site"><br><br> 
    <input type="reset" value="Reset Selection"> 
    </div> 

... 

私が何をしたいのかが出力にsubmitボタンの上に生成されたリンクです。理想的には、最初のフィールドcarsも変更された場合にのみ生成されるようにしたいと思いますが、どのようにまだそれを行うかについてはわかりません。 私はonchangeを使用しているはずですが、実際にはgenerateLink機能からリンクを出力する方法がわかりません。

編集:

私はそれが次の関数を使用して送信ボタンの上にID linkを追加出力することができました。リンクが表示されますが、選択に基づいてhrefの住所を正確にする方法がわかりません。

function showLink() 
{ 
    var car = document.getElementById('cars').value; 
    var year = document.getElementById('years').value; 

    if(car == "fiat" || car == "honda" || car == "mitsu" || car == "acura" || car == "ford") 
     document.getElementById("link").innerHTML ='http://' + year + '.' + car + '.domain.net'; 
    else if(car == "audi" || car == "volvo" || car == "mazda" || car == "nissan" || car == "porsche" || car == "wholesale") 
     document.getElementById("link").innerHTML ='http://' + year + '.' + car + '.domain.net/Sales.jsp'; 
    else if(car == "BMW") 
     document.getElementById("link").innerHTML ='http://' + year + '.' + car + '.domain.net/container.jsp'; 
    else 
     document.getElementById("link").innerHTML ='/error-pages/404.html'; 
} 
+1

最初のフィールド車も同様に変更されたかどうかを知る方法は? –

+1

車をドロップダウンから変更する場合にのみリンクを生成しますか? –

+0

@AtaurRahmanMunna送信ボタンは、クリックされたときに2つのドロップダウンの選択に基づいてリンクを生成し、正常に動作します。私はどのように私は生成されているリンクを出力するか分からない。年が変更された後にリンクが表示されるようにしたい(2回目のドロップダウン)。再び、理想的には、車が変更された場合にのみ年が変更された後にリンクが表示されますが、今はあまり心配していません。 – Nik

答えて

1

あなたは以下#link要素に生成されたリンクをapppend必要があります。

function showLink() 
{ 
    var link = generateLink(); 

    document.getElementById("link").href = link; 
    document.getElementById("link").innerHTML = link; 
} 

・ホープ、このことができます。

function generateLink() 
 
{ 
 
    var car = document.getElementById('cars').value; 
 
    var year = document.getElementById('years').value; 
 

 
    if(car == "fiat" || car == "honda" || car == "mitsu" || car == "acura" || car == "ford") 
 
    link ='http://' + year + '.' + car + '.domain.net'; 
 
    else if(car == "audi" || car == "volvo" || car == "mazda" || car == "nissan" || car == "porsche" || car == "wholesale") 
 
    link ='http://' + year + '.' + car + '.domain.net/Sales.jsp'; 
 
    else if(car == "BMW") 
 
    link ='http://' + year + '.' + car + '.domain.net/container.jsp'; 
 
    else 
 
    link ='/error-pages/404.html'; 
 

 
    return link; 
 
} 
 

 
function showLink() 
 
{ 
 
    var link = generateLink(); 
 
    
 
    document.getElementById("link").href = link; 
 
    document.getElementById("link").innerHTML = link; 
 
} 
 

 
document.ref.onsubmit = function(){ 
 
    this.action = generateLink(); 
 
}
<h1>Ref</h1> 
 
<form name="ref" target="_blank"> 
 

 
    <div style="margin: 0 auto; width:500px;"> 
 

 
    <div style="float:left;"><span>PICK A CAR</span><br> 
 
     <select id="cars" onchange="showLink()"> 
 
     <option value="acura">Acura</option> 
 
     <option value="wholesale">Wholesale</option> 
 
     <option value="BMW">BMW</option> 
 
     <option value="other">Other</option> 
 
     </select> 
 
    </div> 
 

 
    <div style="float:right;"><span>PICK A YEAR</span><br> 
 
     <select id="years" onchange="showLink()"> 
 
     <option value="2016">2016</option> 
 
     <option value="2015">2015</option> 
 
     <option value="2014">2014</option> 
 
     <option value="2013">2013</option> 
 
     </select> 
 
    </div> 
 

 
    <div style="float:left; margin-left:190px; margin-right: 40px; margin-top:70px;"> 
 
     <a href="generateLink()" id="link"></a><br><br> 
 
     <input type="submit" value="Go to Site"><br><br> 
 
     <input type="reset" value="Reset Selection"> 
 
    </div> 
 
    </div> 
 
</form>

+0

お探しですか? –

+0

リンク部分を修正しました(素晴らしい)が、今度は 'submit'ボタンはURLにリダイレクトされません。新しいタブで同じページを開くだけです。私はそれが 'generateLink'がStringを返して、もはやアクションを作らないためだと思いますか? – Nik

+0

はい、そうです。なぜsubmitLink()関数が必要なのですか? –

関連する問題