2011-08-09 9 views
0

[name = g_title]を入力すると[name = sys_title]の値が入力され、[name = headline]は[name = g_title]という入力が入力されます。 keyup使用はonchangeを検出してイベントを起動します

イム()から「g_title」を投入するために変更イベントを検出する「sys_titleが、 『見出しg_title入力のうち、私のタブがない限りg_title『』入力の変化を検出does notの』。それは 'g_title'入力の変化を検出すると同時に '見出し'を埋めるための方法はありますか?

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
<label> sys title</label> 
<input name="sys_title" type="text" size="35" value=""> 
<label>full title </label> 
<input name="g_title" type="text" size="35" value=""/> 
<label>headline</label> 
<input name="headline" type="text" value=""/> 
<script> 
(function($){ 
    $.fn.updateme = function(options) { 
    var defaults = { 
    onlyIfEmpty: false, 
    useDisplay: false, 
    index:-1, 
    delimiter : ":", 
    fieldName: "g_title", 
    }; 

var options = $.extend(defaults, options); 

return this.each(function() { 
    obj = $(this); 



// obj is curren input field get v 
var fieldValue = obj.attr("value"); 
if ((options.onlyIfEmpty == false)|| fieldValue.length==0) { 
className = "updateme-fieldname-"+options.fieldName; 
if (options.useDisplay) { 
    obj.addClass("updateme-display"); 
} 
if (options.index>=0) { 
    obj.addClass("updateme-index-"+options.index); 
} 

    obj.addClass(className); 
    $(':input[name="'+options.fieldName+'"]').keyup(function() { 
     newObj = $(this); 
    // $("."+className).val(newObj.val()).change(); 

     $("."+className).each(function(index) { 
       if ($(this).hasClass("updateme-display")) { 
        var selected = $("option:selected",newObj); 
        var displayValue = selected.text(); 

        if ($("[class^='updateme-index-']")) { 
         index = 1; 
     displayValue = displayValue.split(options.delimiter)[index]; 
        }  
      $(this).val(displayValue);      

       } else { 
        $(this).val(newObj.val()); 

        } 


     }); 
    }).keyup(); 
    } 

}); 
}; 
})(jQuery); 


//register with 

$().ready(function() { 

$("input[name='g_title']").updateme({ 
onlyIfEmpty: true, 
useDisplay: false, 
fieldName: "sys_title" 
}); 

$("input[name='headline']").updateme({ 
onlyIfEmpty: false, 
    useDisplay: false, 
    fieldName: "g_title" 
    }); 


}); 
</script> 

</body> 
</html> 

答えて

0

私はそれがg_titleに同時に読み込まれますSYS-タイトルに何かを入力するとシャンカールこんにちは、「変更」イベントがに私のためのトリックを行いますでしょう代わりにkeyup

$(':input[name="'+options.fieldName+'"]').bind('change keyup', function() { 
     newObj = $(this); 

     $(".updateme-fieldname-"+this.name).each(function(index) { 
       if ($(this).hasClass("updateme-display")) { 
        var selected = $("option:selected",newObj); 
        var displayValue = selected.text(); 

        if ($("[class^='updateme-index-']").length) { 
         index = 1; 
     displayValue = displayValue.split(options.delimiter)[index]; 
        }  
      $(this).val(displayValue);      

       } else { 
        $(this).val(newObj.val()); 

        } 


     }); 
    }).trigger('change'); 
+0

changeイベントを使用しますg_titleと 'headline'の両方に値を設定しますか? – avinash

+0

私の編集した回答が役立つことを確認してください。 – ShankarSangoli

+0

幸運のシャンカーは、これらの変更を入れていない今、任意のchnageを検出していない... :( – avinash

関連する問題