Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';标签';标签不在ie8中工作 支票1 支票2 函数showValues(){ 警报(该值); } $(“输入[type='checkbox']”)。单击(“单击”,显示值);_Javascript_Html - Fatal编程技术网

Javascript 为什么';标签';标签不在ie8中工作 支票1 支票2 函数showValues(){ 警报(该值); } $(“输入[type='checkbox']”)。单击(“单击”,显示值);

Javascript 为什么';标签';标签不在ie8中工作 支票1 支票2 函数showValues(){ 警报(该值); } $(“输入[type='checkbox']”)。单击(“单击”,显示值);,javascript,html,Javascript,Html,当你点击“check1”文本时,它的工作原理如下图所示 但是它在ie8中不起作用将标记移动到中 我认为您希望在标签上注册您的点击,而不是复选框(因为您实际上没有显示复选框)。试试这个: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> </head> <body> <input type="checkbox" name="check"

当你点击“check1”文本时,它的工作原理如下图所示

但是它在ie8中不起作用

标记移动到

我认为您希望在标签上注册您的点击,而不是复选框(因为您实际上没有显示复选框)。试试这个:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
</head>
<body>
  <input type="checkbox" name="check" style="display:none;" value="check1" id="ch1">
  <label for="ch1">check1</label>
  <input type="checkbox" name="check" style="display:none;" value="check2" id="ch2">
  <label for="ch2">check2</label>
</body>
</html>
 <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>
  function showValues() {
     alert(this.value);
  }
  $( "input[type='checkbox']" ).on( "click", showValues );
</script>

$(文档).ready(函数(){
函数showValues(){
警报(该值);
}
$(“输入[type='checkbox']”)。单击(“单击”,显示值);
});
支票1
支票2
  • 其中是$(document).ready()
  • 代码中有几个项目
    这会导致“浏览器猜测”你到底想要什么。
    就像两个复选框的名称相同一样
    它们不是单选按钮,因此名称应该是唯一的
    输入属性ID=“…”用于CSS定义,而不是用于输入标识
    支票1
    支票2
    为了极大地帮助浏览器,代码应该更像:
    支票1
    支票2
    
    我正在使用IE 8,它可以工作。这里“不工作”是什么意思?没有弹出消息?单击标签不会切换复选框?没有弹出消息。感谢您的回答。但它对我不起作用。您有测试吗?确保在IE8中测试它@一无所有 我想我看到了另一个问题。您的事件是在单击复选框时触发的,而您并没有显示这些复选框。我用你需要做的额外更改更新了我的答案,并在IE8上进行了测试,以确认它是否有效。你的答案有效。但这不是我想要的。我想知道为什么相同的代码在IE8和IE10之间显示出不同的结果。我想知道为什么它在IE10中成功而在IE8中失败。我不是Microsoft工程师,所以我只能猜测如果我我试图回答那个问题。IE因在呈现HTML/CSS和解释JavaScript时存在相当大的不一致而臭名昭著。您可能刚刚发现了其中一个。谢谢您的回答。但它对我不起作用。您有测试吗?请确保在IE8中测试它
    function showValues() {
       alert($("#"+$(this).attr("for")).val());
    }
    $("label").on("click", showValues);
    
    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
    
     <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
    <script>
    
    $(document).ready(function(){
      function showValues() {
         alert(this.value);
      }
      $( "input[type='checkbox']" ).on( "click", showValues );
    });
    </script>
    
    
    </head>
    <body>
      <input type="checkbox" name="check" style="display:none;" value="check1" id="ch1">
      <label for="ch1">check1</label>
      <input type="checkbox" name="check" style="display:none;" value="check2" id="ch2">
      <label for="ch2">check2</label>
    </body>
    </html>
    
    there are several items within the code 
    that result in 'browser guesses' as to what you actually want.
    Like having both check boxes having the same name 
    they are NOT radio buttons so the names should be unique
    A input attribute ID="..." is for CSS definitions, not for input identification
    
    <input type="checkbox" name="check" style="display:none;" value="check1" id="ch1">
    <label for="ch1">check1</label>
    <input type="checkbox" name="check" style="display:none;" value="check2" id="ch2">
    <label for="ch2">check2</label>
    
    To greatly help the browser, the code should look more like:
    
    <label>
        check1
        <input type="checkbox" name="check1" style="display:none;" value="check1" />
    </label>
    <label>
        check2
        <input type="checkbox" name="check2" style="display:none;" value="check2" />
    </label>