基本Javascript仅适用于Firefox

时间:2016-02-21 10:42:26

标签: javascript jquery

我写了一些非常基本的javascript来显示基于下拉菜单中用户选择的div。出于某种原因,这只适用于firefox,而不是chrome,safari或ie等。有人能指出我正确的方向吗?

您可以在此处查看jsfiddle上的整个解决方案 http://jsfiddle.net/TR5a5/53/

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/templates 
RewriteRule ^(.*)$ templates/$1 [L]

非常感谢

2 个答案:

答案 0 :(得分:0)

$(this).attr("value")通常是错误的,因为value 属性不反映输入的值(奇怪但是真实)。如果您想要当前值,则需要this.value$(this).val()(或$(this).prop("value"))。

value 属性反映了标记中设置的value,即输入的默认值,而不是其当前值。输入的value 属性反映其实际值。 (还有defaultValue属性,它直接链接到value属性,而不是input的当前值。)

以下是value 属性value 属性defaultValue 属性<的示例/ em>工作:

$("input[type=button]").on("click", function() {
  var $input = $("input[type=text]");
  show("<code>$input.val() = '" + $input.val() + "'");
  show("<code>$input.prop('value') = '" + $input.prop('value') + "'");
  show("<code>$input.attr('value') = '" + $input.attr('value') + "'");
  show("<code>$input.prop('defaultValue') = '" + $input.prop('defaultValue') + "'");
});
function show(msg) {
  $("<p>").html(msg).appendTo(document.body);
}
<p>Type something in the input, and then click the button.</p>
<input type="text" value="default">
<input type="button" value="Click Me">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

答案 1 :(得分:0)

如果有任何其他新手遇到这个问题我暂时找到了解决方案

我需要使用

jQuery(function ($) {

$(document).ready(function(){