2013-08-30 15 views
1

我期待建立一個(由keyup隨機更新)用關鍵字文本輸入行爲的替代輸入的實時更新:jQuery的:使用隨機選擇的關鍵字

我每次更新關鍵字輸入(也就是說,用「,」分隔),我更新了一個post_title文本輸入,但是這個post_title已經有內容,並且只能通過替換{{keyword}}(並保持文本的其餘部分不變)來接受更新後的關鍵字。

演示:http://jsfiddle.net/7yLqb/1/

slug根據需要(隨機,每一次我更新的關鍵字)作爲無{{keyword}}更換是必要的,但post_title需要保持它的內容,同時更新每次{{keyword}}我修改當前更新關鍵字輸入。

這是否有意義?

JS

$(function() { 

    $('#keywords').bind('keyup', function() { 

     var items = $(this).val().split(', '); 
     var keywords_value = items[Math.floor(Math.random() * items.length)]; 

     var post_title_value = $('#post_title').val(); 
     var post_title_value_replaced = post_title_value.replace('{{keyword}}', keywords_value); 
     $('#post_title').val(post_title_value_replaced); 

     var slug = keywords_value.replace(/[^a-zA-Z0-9-]/g, '-').toLowerCase().replace(/--+/g, '-'); 
     $('#slug').val(slug); 

    }); 

}); 
+0

給出一個示例輸入,並且您期望看到的結果 – PlantTheIdea

回答

1

存儲模板(從POST_TITLE值)分別所以,當你改變它的價值,你不會失去的{{keyword}}位置。

$(function() { 
    var titleTemplate = $("#post_title").val(); 
    $('#keywords').bind('keyup', function() { 

     var items = $(this).val().split(', '); 
     var keywords_value = items[Math.floor(Math.random() * items.length)]; 

     //var post_title_value = $('#post_title').val(); 
     var post_title_value_replaced = titleTemplate.replace('{{keyword}}', keywords_value); 
     $('#post_title').val(post_title_value_replaced); 

     var slug = keywords_value.replace(/[^a-zA-Z0-9-]/g, '-').toLowerCase().replace(/--+/g, '-'); 
     $('#slug').val(slug); 

    }); 

}); 
+0

很棒!謝謝! – Lee