2013-02-18 41 views
1

我在我的HTML中有以下内容,输入值将由用户选择填充并以数组格式(45[45, 6, 33], 67[67,2,5] and so on..)存储值。基本上价值就会像下面这样:如何在输入没有数组的情况下禁用按钮?

<input id="question_string" type="hidden" value="{}"> 
<input class="submit_updates" name="commit" type="submit" value="Process"> 

现在我需要禁用提交按钮或提醒,如“选择所有值”的一些消息,如果输入已在{}没有阵列。

更新:

var question_hash_element = document.getElementById('question_string'); 
var question_hash = JSON.parse(question_hash_element.value); 

    var myArray = new Array(); 
     myArray[0] = window.batch_question_id; 
     myArray[1] = window.answer_id || window.answer_text || window.batch_answer_checkbox 
     myArray[2] = window.build_id 

上述代码存储的该位的值进入{}。我只想禁用并让用户选择所有字段来处理表单。如果值为{},则应禁用该按钮。和里面的任何值,它应该被启用。

我已经试过类似如下:

$('.submit_updates').click(function() { 
    if ($('#question_string') == {}) { 
     return false; 
     alert("Select all the Values"); 
    } else { 
     return true; 
    } 
    }); 

它不工作..

任何帮助,将不胜感激!谢谢

+0

您目前是比较'$( '#QUESTION_STRING')'一个空对象文本,他们永远也不会是相同的。你想要比较的是[input value](http://api.jquery.com/val/)和* string *'“{}”'。 – Bergi 2013-02-18 15:44:39

+0

您可能希望在输入中使用[有效的JSON](http://jsonlint.com/),例如[[45,6,33],[67,2,5]]。 – emallove 2013-02-18 15:46:17

+1

这几乎觉得你应该使用这些元素上的jQuery数据()功能(当然你不需要知道更多关于你的解决方案的信息) – 2013-02-18 15:50:06

回答

1

您在提醒消息之前返回false。

试试这个:

$('.submit_updates').on("click", function() { 
    if ($('#question_string').val() == "{}") { //Adjusted condition 
    //Alert message 
    alert("Select all the Values"); 

    //Disable the submit button 
    $(".submit_updates").prop("disabled", true); 
    return false; 
    } else { 
    return true; //Not really needed 
} 
}); 

这是更好的使用onprop代替clickattr,作为@adeneo建议。

+0

使用.prop()为禁用不.attr(),否则为1.9 +您将遇到问题 - 马克舒尔赫斯 – 2013-02-18 15:45:04

+0

@Mark谢谢,相应更新! – weltschmerz 2013-02-18 15:47:02

+0

传递给{}的值,但未提交..任何猜测? – Learner 2013-02-18 15:52:44

2
$('.submit_updates').on('click', function (e) { 
    e.preventDefault(); 
    if ($.trim($('#question_string').val())=='{}') { 
     alert('no question !'); 
    }else{ 
     this.form.submit(); 
    } 
}); 
+0

+1使用'prop'而不是'attr' – Bergi 2013-02-18 15:42:36

+0

如果点击禁用的按钮,是否可以添加一个flash消息? – Learner 2013-02-18 15:44:25

+0

“flash message”是什么意思? – adeneo 2013-02-18 15:45:44

1

试试这个

$(function(){ 
    $('.submit_updates').on('click', function() { 
     if ($('#question_string').val() == "{}") { 
       $(this).prop('disabled', 'disabled'); 
       alert("Select all the Values"); 
     } else { 
     } 
     }); 
}); 

DEMO

+0

使用.prop()为禁用而不是'.attr()'否则为1.9+您将遇到问题 – 2013-02-18 15:44:39

+0

@Mark thansk为您的建议。 :-) – Codegiant 2013-02-18 15:49:43

+0

@Sri是为你工作的吗? – Codegiant 2013-02-18 15:53:50

相关问题