a的价值<input type="text">可以通过多种方式改变,包括:
我希望我的JavaScript函数在任何时候都会被调用(使用当前输入值).我希望它能立即被调用,而不仅仅是当输入失去焦点时.
我正在寻找在所有浏览器中执行此操作的最干净,最强大的方法(最好使用jQuery).
示例用例:在Twitter注册页面上,用户名字段的值显示在其下方的URL" http:// twitter/username "中.
当我更改/点击单选按钮组时,我正在使用jQuery来隐藏和显示元素.它在Firefox等浏览器中运行良好,但在IE 6和7中,仅当用户点击页面上的其他位置时才会执行操作.
详细说明,当你加载页面时,一切看起来都很好.在Firefox中,如果单击单选按钮,则会隐藏一个表行,并立即显示另一个表行.但是,在IE 6和7中,您单击单选按钮,在您单击页面上的某个位置之前不会发生任何事情.只有这样,IE才会重绘页面,隐藏并显示相关元素.
这是我正在使用的jQuery:
$(document).ready(function () {
$(".hiddenOnLoad").hide();
$("#viewByOrg").change(function () {
$(".visibleOnLoad").show();
$(".hiddenOnLoad").hide();
});
$("#viewByProduct").change(function () {
$(".visibleOnLoad").hide();
$(".hiddenOnLoad").show();
});
});
Run Code Online (Sandbox Code Playgroud)
这是它影响的XHTML的一部分.整个页面验证为XHTML 1.0 Strict.
<tr>
<td>View by:</td>
<td>
<p>
<input type="radio" name="viewBy" id="viewByOrg" value="organisation"
checked="checked" />Organisation</p>
<p>
<input type="radio" name="viewBy" id="viewByProduct" value="product" />Product</p>
</td>
</tr>
<tr class="visibleOnLoad">
<td>Organisation:</td>
<td>
<select name="organisation" id="organisation" multiple="multiple" size="10">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
</td>
</tr>
<tr class="hiddenOnLoad">
<td>Product:</td>
<td>
<select name="product" id="product" multiple="multiple" size="10">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select> …Run Code Online (Sandbox Code Playgroud) 我将非常感谢有关使用$(this)[0] .defaultValue来确定文本框值是否与原始值有所不同的一些反馈,例如:
//keyUp event
if($(this)[0].defaultValue != $(this).val())
{
//Field has been modified mark as dirty
}
Run Code Online (Sandbox Code Playgroud)
在Chrome中,它似乎生成了所需的输出,因为defaultValue始终是文本框加载到DOM中的原始值.但是,我最近才发现这个值在浏览Chrome开发工具中的DOM对象后寻找完全不同的东西,我担心它可能会带来一大堆问题.此外谷歌没有太多关注我更关心我...
任何反馈都非常感谢.
干杯罗布