2016-08-02 23 views
-2

這是我目前的代碼。 URL驗證器只在那裏,因爲這個東西重定向在選擇的任何選項上,並且我想要重定向觸發的唯一時間是當我用jQuery添加的選項被點擊時。當且僅當使用jquery/js選擇了添加的選項時,如何添加選項到動態數量的選擇框並重定向瀏覽器?

這裏是我的HTML:

<select data-select-size-key="0" id="popular_sizes_0" name="popular_sizes_0">!!OptiONS CONtAINED HERE!!</select> 

和我的JS:

var customSizeOption = "<option value='"+"https://url.com"+"'>Size Not Listed?</option>"; 
$("[id^=popular_sizes_]").append(customSizeOption); 

function validateURL(textval) { 
    var urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/; 
    return urlregex.test(textval); 
} 

$(function(){ 
    // bind change event to select 
    $("[id^=popular_sizes_]").on('change', function() { 
     var url = $(this).val(); // get selected value 
     if (validateURL(url)) { // require a URL 
      window.location = url; // redirect 
     } 
     return false; 
    }); 
}); 

而且here's CodePen for it

注:_0自動遞增,每頁最多12個選擇框

+0

HTML代碼中缺少? – yuriy636

+0

添加到codepen。對不起 – Nicole

+0

那麼,如果你想通過JS(和選擇)而不是通過用戶選擇重定向,有什麼要做的選擇smth? (這是我可以從問題標題中看到的) – YakovL

回答

0

你的代碼工作正常,但select沒有其他option,所以沒有如果添加了一個默認的變化事件(空白)option並運行它的代碼。

<select data-select-size-key="0" id="popular_sizes_0" name="popular_sizes_0"> 
<option></option> 
</select> 

現在,如果更改選項,驗證和重定向的工作。

相關問題