在表单中选择随机答案的最佳方法

时间:2011-12-06 11:13:47

标签: jquery

我使用以下代码以表格

选择随机答案
  $('table').filter(function() { return ($(this).find('input').size() > 0); }).find('tr').each(function()
    {
        $(this).find('input').filter(function(){    return (Math.round(Math.random()) == 1);    }).each(function()
        {
            switch(this.type) {
                case 'checkbox':
                case 'radio':
                    this.checked = true;
                    this.trigger('click');
                        break;
                case 'password':
                case 'select-multiple':
                case 'select-one':
                case 'text':
                case 'textarea':
                    $(this).val('12345');
                        break;
            }
        });
    });

但它有时不会连续回答任何输入元素。请帮帮我。

2 个答案:

答案 0 :(得分:0)

您的代码有问题。 “input”标签上的“type”属性不能是“select-one”,“select-multiple”或“textarea”。

对于textarea,它是一个完全不同的标签:<textarea>some text</textarea>

对于选择它也是一个不同的标记:<select>用于单个选择,<select multiple="multiple">用于多个选择。

您没有指定“何时”它不起作用,但我相信情况就是这样。

答案 1 :(得分:0)

我建议只删除前两行以及代码的最后一行,因为你可以简单地用$('input')更改$(this).find('input')并具有完全相同的事情,只是更简单。另外,我只是删除你的随机化,因为这可能是你的一些行没有改变的原因。 这可能会解决您的问题:

$("input").each(function() {
        switch(this.type) {
            case 'checkbox':
            case 'radio':
                this.checked = true;
                this.trigger('click');
                    break;
            case 'password':
            case 'select-multiple':
            case 'select-one':
            case 'text':
            case 'textarea':
                $(this).val('12345');
                    break;
        }
});