2014-02-24 22 views
0

我有3個輸入字段:讓阿賈克斯後,當輸入的變化和複選框VAL被選中

Title: <input type="text" value="Testa Ieraksts" id="blog_title"><br> 
Check: <input type="checkbox" value="" id="blog_url_change"><br> 
URL: <input type="text" value="" id="blog_slug" disabled="disabled"><br> 

目標:當複選框被選中輸入#blog_slug設爲非殘疾人,然後我想在輸入#blog_title更改發送ajax後與var數據。

jQuery(document).ready(function($){ 

$('input#blog_url_change').click(function(){ 
     $('input#blog_slug').attr('disabled', !$(this).attr('checked')); 

     var STATUS = $('input#blog_url_change').prop('checked'); 

     if (STATUS === true) { 

     $('input#blog_title').on('change', function() { 

        var DOMAIN = window.location.hostname; 
        var DATA = this.value; 

           $.ajax({ 
            type: 'POST', 
            url: "http://" + DOMAIN + "/blog/helper/geturl", 
            data: 'data=' + DATA, 
            dataType: 'json', 
            success: function (response) { 
             console.log(response.url); 
             $('input#blog_slug').val(response.url); 
            }, 
           }); // End Ajax 
       }); 
     } 
    }); 
}); 

問題:我只需要時複選框被選中和標題輸入VAL改變張貼。 如何將這些方法連接在一起?

+1

你爲什麼不聽上'$( '#BLOG_TITLE')''一個事件onchange',如果複選框被裏面檢查檢查? – iCore

+0

謝謝,解決了!改變邏輯結構的一點點:) –

回答

1

感謝@iCore;)

$('input#blog_title').on('change', function() { 
     $('input#blog_url_change').click(function(){ 
     $('input#blog_slug').attr('disabled', !$(this).attr('checked')); 
       var STATUS = $('input#blog_url_change').prop('checked'); 
       console.log(STATUS); 
       if (STATUS === true) { 
        var DOMAIN = window.location.hostname; 
        var DATA = $('input#blog_title').val(); 
           $.ajax({ 
            type: 'POST', 
            url: "http://" + DOMAIN + "/blog/helper/geturl", 
            data: 'data=' + DATA, 
            dataType: 'json', 
            success: function (response) { 
             console.log(response.url); 
             $('input#blog_slug').val(response.url); 
            }, 
           }); // End Ajax 
       }// End If 
      }); 
    });