jQuery .change() 不适用于文本区域

标签 jquery forms text input textarea

这是我第一次在 StackOverflow 上提问,但我目前对我正在创建的一些公司代码感到困惑。它根本不会接受 .change() 或绑定(bind)到 keyup。我以前没有遇到过问题,但今天它不再对我有用。检查我的代码,看看是否发现任何可能导致问题的内容。

很抱歉格式问题,我是新人。

var currentContent = "null";
var customeri = "";
var optionsi = "";
var equipmenti = "";
var picturei = "";
$(document).ready(function() {
    $("#preview").hide();
    $("#previewPane").hide();
    $("#previewHeading").hide();
$(".uiFonts").click(function() {
    var clickedID = $(this).attr("id");
    if(clickedID !== null) {
        $("#main").hide();
        loadContent(clickedID);
    }
});

$("#Equipment").bind('change keyup', function() {
        equipmenti = $(this).val();
                    $("#preview").html('<br /><span class="reg">Customer Info<br /></span>'+customeri+'<br /><br /><span class="reg">Options<br /></span>'+optionsi+'<br /><br /><span class="reg">Equipment<br /></span>'+equipmenti+'<br /><br /><span class="reg">Picture:<br /></span><img src="'+picturei+'" />');
});
});
function loadContent(cID) {
$("#main").load(cID + ".html", function() {
    $("#main").slideDown(1500);
    $("#preview").fadeIn(1500);
    $("#previewPane").fadeIn(1500);
    $("#previewHeading").fadeIn(1500);
    currentContent = cID;
});
}

包含文本区域的.html文件如下:

<p><span class="reg">Customer Info - Name, Address, Phone, Email</span><br />
<textarea name="Customer Info" class="textAreas inputs" id="Customer"></textarea>
<br />
<br />
<span class="reg">Trailer Options</span>
<br />
<textarea name="Options" class="inputs textAreas" id="Options"></textarea>
<br />
<br />
<span class="reg">Trailer Equipment</span>
<br />
<textarea name="Equipment" class="inputs textAreas" id="Equipment"></textarea>
<br>
<br>
<span class="reg">Picture URL</span></p>
<input type="text" id="picture" class="inputs"></input>

我尝试过将它们绑定(bind)在一起,例如:

$(".inputs").change(function() {
    customeri = $("#Customer").val();
    optionsi = $("#Options").val();
    //etc

最佳答案

加载外部 .html 文件时,jquery 无法定期访问它并对它应用操作。出现这个问题的原因是,在触发器 $(document).ready 中,它在加载之前找不到指向 .html 中找到的 id 的链接,并且如果您在文档之后调用外部 .html,则为时已晚。已准备就绪。

解决方法是将 .change 包含在单独的 jquery 函数中,或者仅在文档加载完成之前加载 .html。

关于jQuery .change() 不适用于文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16025396/

相关文章:

jquery - Chrome 没有将样式表 css 规则应用于某些元素,jquery 隐藏和显示 div(屏幕截图)

javascript - 页面仅在刷新后加载 CSS 和 JavaScript

javascript - 如何判断 HTTP 表单是否已提交?

php - 一些字符在 POST 期间编码,而另一些则没有

jquery - 多个AJAX请求相互延迟

javascript - PHP 表单在重新加载或转到上一个时保留表单的值

text - X11剪贴板如何处理多种数据格式?

Python每分钟读取txt文件600x-1200x的后果

Python txt文件标签解析

javascript - 处理 td 上的点击事件,其中 td 不包含复选框