2017-04-14 5 views
0

データリストにはいくつかのオプションがあり、そのうちの1つが選択されたときに別のページにリンクしたいと思います。 以下は、私が最初に試みたもので、オプションラベルにハイパーリンクを直接追加しようとしました。しかし、それはうまくいかないようでした。データリストオプションに基づいて他のページにリンクする

<input type="text" name="my-input" list="my-list"> 
    <datalist id="my-list"> 
    <option value="a"><a href="http://stackoverflow.com/questions"></a>a</option> 
    <option value="b"><a href="http://stackoverflow.com/questions"></a>b</option> 
    <option value="c"><a href="http://stackoverflow.com/questions"></a>c</option> 
    </datalist> 

さらに、各オプションのonclickイベントを指定して、それに応じて他のページにジャンプしようとしましたが、それでも失敗しました。 データリストを使用してこれを達成することは可能ですか?

答えて

0

これは、私はそれを行うだろうかです:

$(document).ready(function() { 
    $("[list='my-list']").on("input propertychange", function() { 
    window.location = $("#my-list option[value='"+$("[list='my-list']").val()+"']").find("a").attr("href") 
    }); 
}); 

Here is the CodePen demo

注SOクロスドメインの起源を許可していないため、ページがリダイレクト後に空白であること。リダイレクトの試みを確認するには、コンソールを確認してください。

+0

あなたのソリューションをありがとう!あなたのソリューションは基本的に私の要件を満たしていますが、オプションが選択されると直ちにリダイレクトがトリガーされることを期待しています。あなたの提供されたソリューションでは、入力が「フォーカスアウト」になるまで、ページは指示されません。だからこれを行うための良い方法はありますか? –

+0

はい、可能です。私はそれが動作するようにイベントバインディングを変更し、コードとCodepenのデモリンクを更新しました:) –

+0

ありがとうございました!私はあなたのデモを試しました。実際には、上記の問題を解決しています。ただし、入力イベントが使用されているため、入力値が変更されるたびにリダイレクトがトリガーされますが、最初のアイデアは特定のオプションがクリックされたときにのみリダイレクトされるためです。 あなたのソリューションのおかげで、入力値がオプションと一致するかどうかを確認し、一致したときにのみリダイレクトを起動するという新しいアプローチを思いつきました。 –

関連する問題