我有一个文本区域,其中填充了正在检查的checkboxex的值。我希望在更改文本区域的内容时调用jquery函数。我尝试了以下功能,但仅当其内容通过键更改而不是由于复选框值映射时才起作用。
$(document).ready(function(){
$('#message_sent_to').on('propertychange change keyup paste input',function() {
alert("hello");
var limit = $('#promo_limit').val();
alert("<%= @p_limit %>");
});
文字区域是
<%= f.text_area :sent_to, :class => 'form-control'%>
有两个复选框,一个用于映射所有复选框的值,另一个用于映射单个复选框值。
<%= check_box_tag "contact_no[]", staff.contact_no %>
<%= check_box_tag "contact_nos[]", @staff_members.map(&:contact_no).join(', ') %>
注意:复选框映射的代码太长,所以我不在此处发布。
答案 0 :(得分:2)
你也可以通过检查文本框值使用javascript来做到这一点,即它会在一段时间内改变或不改变。
var $message_sent_to = $("#message_sent_to");
$message_sent_to.data("value", $message_sent_to.val());
setInterval(function() {
var data = $message_sent_to.data("value"),
val = $message_sent_to.val();
if (data !== val) {
$message_sent_to.data("value", val);
alert("changed");
}
},100);
答案 1 :(得分:0)
$(document).ready(function() {
$("#message_sent_to").on("propertychange change keyup paste input", function() {
alert("hello");
// var limit = $('#promo_limit').val();
alert("<%= @p_limit %>");
});
$("input").on("change", function(e) {
$("#message_sent_to").val(function(_, val) {
return val + e.target.value
}).triggerHandler("input")
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<textarea id="message_sent_to"></textarea>
<input type="checkbox" />
<input type="checkbox" />