Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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 正确使用select和js吗?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 正确使用select和js吗?

Javascript 正确使用select和js吗?,javascript,jquery,html,Javascript,Jquery,Html,我试图使用select为用户提供两种选择。1个选项为所有者,另一个选项为非所有者。我希望能够问他们不同的问题,如果他们是业主与否。我希望他们能够输入数字为1-10的答案,并根据答案给予反馈。如果可以的话,我会尽量说得非常清楚。一个问题有两个选择。选择该选项后,将询问所有者或非所有者问题,并添加“我有一把小提琴”和“我有什么”。我到处都是,不知道,别介意我。如果有人能给我看那部作品那就太棒了!!!改变其中的任何东西,只是想让它发挥作用 选择一个选项 物主 非所有者 您的选择器在“非所有者”的点击

我试图使用select为用户提供两种选择。1个选项为所有者,另一个选项为非所有者。我希望能够问他们不同的问题,如果他们是业主与否。我希望他们能够输入数字为1-10的答案,并根据答案给予反馈。如果可以的话,我会尽量说得非常清楚。一个问题有两个选择。选择该选项后,将询问所有者或非所有者问题,并添加“我有一把小提琴”和“我有什么”。我到处都是,不知道,别介意我。如果有人能给我看那部作品那就太棒了!!!改变其中的任何东西,只是想让它发挥作用


选择一个选项
物主
非所有者

您的选择器在“非所有者”的点击处理程序中出错。btw ID在上下文页面上必须是唯一的。最好的方法是使用类而不是ID,并选中可见框:

$('.myOptions').change(function(){
  $('.list').removeClass('active')
  .filter('.' + $('.myOptions').children('option:selected').attr('data-val'))
  .addClass('active');
});

/* want to say if owner do this 
when I un-comment this it breaks
var qbc = $('#owner')
var c = $('#myOptions')

if $(c == qbc){
    prompt("worked!!!!")
}
*/


$('#butt').click(function () {
    var $boxOne = $('.box:visible').eq(0);
var k1 = parseInt($boxOne.val(), 10);
var $boxTwo = $('.box:visible').eq(1);
    var k2 = parseInt($boxTwo.val(), 10);

    var $boxThree = $('.box:visible').eq(2);
    var k3 = parseInt($boxThree.val(), 10);


    var total = k1 + k2 + k3;

    var msg = '';

    if (isNaN(total)) {
        msg = 'Input three numbers, please...';
    } else if (total < 30) {
        msg = "That's bad, should be higher...";
    } else if (total > 40) {
        msg = "That's bad, should be lower...";
    } else {
        msg = "You got it... Nice work.";
    }


    $('#output').text(msg);   

});

/* else i will change question number and do same thing */
$('.myOptions').change(函数(){
$('.list').removeClass('active'))
.filter('.+$('.myOptions').children('option:selected').attr('data-val'))
.addClass(“活动”);
});
/*想说如果主人这样做
当我对此发表评论时,它就破裂了
var qbc=$(“#所有者”)
变量c=$(“#myOptions”)
如果$(c==qbc){
提示(“工作!!!!”)
}
*/
$('#butt')。单击(函数(){
var$boxOne=$('.box:visible').eq(0);
var k1=parseInt($boxOne.val(),10);
var$boxTwo=$('.box:visible')。等式(1);
var k2=parseInt($boxTwo.val(),10);
变量$boxThree=$('.box:visible')。等式(2);
var k3=parseInt($boxThree.val(),10);
var total=k1+k2+k3;
var msg='';
若有(isNaN(总计)){
msg='请输入三个数字…';
}否则,如果(总数<30){
msg=“这太糟糕了,应该更高……”;
}否则,如果(总数>40){
msg=“这太糟糕了,应该更低……”;
}否则{
msg=“你明白了……干得好。”;
}
$(“#输出”).text(msg);
});
/*否则我会改变问题编号,做同样的事情*/

我建议,要处理求和,将jQuery更改为:

$('#butt').click(function () {

    /* this gets an array of the numbers contained within visible
       input elements */
    var nums = $('.list input:visible').map(function () {
        return parseInt(this.value, 10);
    }),
    // initialises the total variable:
        total = 0;
    /* iterates over the numbers contained within the array,
       adding them to the 'total' */
    for (var i = 0, len = nums.length; i < len; i++) {
        total += nums[i];
    }

    var msg = '';

    if (isNaN(total)) {
        msg = 'Input three numbers, please...';
    } else if (total < 30) {
        msg = "That's bad, should be higher...";
    } else if (total > 40) {
        msg = "That's bad, should be lower...";
    } else {
        msg = "You got it... Nice work.";
    }


    $('#output').text(msg);

});

要测试某人是否是或说他们是所有者,请执行以下操作:

var total = 0,
    isOwner = $.trim($('.myOptions option:selected').val()) === 'owner';
if (isOwner) {
    console.log("It's the owner");
}
上述jQuery与
select
元素耦合,其中
选项
元素具有以下值:

<select class="myOptions">
    <option value="-1" data-val="" selected>Pick an option</option>
    <option value="owner" data-val="owner">Owner</option>
    <option value="not-owner" data-val="not-owner">Not Owner</option>
</select>

选择一个选项
物主
非所有者

参考资料:


冷静和准确超级清晰意味着无法理解…在您的链接演示中,当我更改
选择
选项时,列表会更改以显示不同的复选框。你有什么问题?很抱歉,一整天都没有进展。如果我选择owner并放置,1,1,1它将执行我想要的操作…但是如果我使用non-owner,则不执行相同的操作。我试图使用if语句来说明如果owner添加插补/问题1,2和3,否则如果添加4,5和6。给他们回插补,就像我现在设置的一样。我怎么做对我来说无关紧要。。我会用任何人说的最好的方式来做。戴夫问我是否想在这里添加另一个if语句。。。示例所有者用a 9,b 2,c 9回答,我想说21是可以的,但b 2非常糟糕。如果使用js,我会这样做(total>21&a,b,cit看起来像是使用了$('.list-input:visible')。each(function(){total+=parseInt(this.value,10);将所有答案加在一起。非常感谢。或者任何能提供帮助的人,dave,你的答案对我来说最有效……但问题是,我希望能够访问每个答案的输入……你的答案只会给我总数……我想要var$boxOne=$('#box1');var k1=parseInt($boxOne.val(),10);对于所有者来说,如果问题2,他们1-10,他们说2,我希望能够说非常好,非常坏。现在它设置了所有添加的位置,我认为我无法单独访问它们。
var total = 0,
    isOwner = $.trim($('.myOptions option:selected').val()) === 'owner';
if (isOwner) {
    console.log("It's the owner");
}
<select class="myOptions">
    <option value="-1" data-val="" selected>Pick an option</option>
    <option value="owner" data-val="owner">Owner</option>
    <option value="not-owner" data-val="not-owner">Not Owner</option>
</select>