我正在使用Zend_Form
和表单验证。问题是我使用 jQueryshow()
和hide()
函数隐藏了一些表单字段。
这里的问题是,如果验证发现错误,所有的表单字段都会显示出来,我想要的是保持隐藏和可见字段的状态。知道为什么会这样吗?
如果代码有所不同,请索取,我会立即提供。
Zend_Form
代码:
$this->setMethod('post');
$element = new Zend_Form_Element_File("file", array(
'validators' => array(
array('Extension', true, 'hume')
)
));
$element->setDestination("/var/www/testGraduationProject1/public/TempFolder/");
$element->setLabel("Upload");
$this->addElement($element);
$this->addElement('submit', 'Upload', array(
'ignore' => true,
'label' => 'Upload',
));
$this->addElement('select', 'Work_Space', array(
'Multioptions' =>
array(
'Hume_Compile_Selection' => 'Please Select Compiling type',
'Hume_Recourses' => 'Hume Recourses',
'Hume_Compile' => 'Hume Compile',
),
'id' => 'Work_Space',
'label' => 'Compiler'
));
$this->addElement('select', 'Editor', array(
'Multioptions' =>
array(
'Choose Editor' => 'Choose Editor',
'TinyMce' => 'TinyMce',
'Ymacs' => 'Ymacs',
),
'id' => 'Editor',
'label' => 'Editor'
));
$this->addElement('text', 'File_Name', array(
'label' => 'File name',
'required' => true,
));
$this->addElement('checkbox', 'Advanced_Settings', array(
'checked' => '0',
'label' => 'Advanced Settings',
'id' => 'Advanced_Settings',
));
$this->addElement('textarea', 'Advanced_Options', array(
'label' => 'Advanced Options',
'cols' => 50,
'rows' => 7,
'id' => 'Advanced_Options',
'validators' => array(
array('regex', true, array(
'pattern' => '/[^[a-zA-Z ><+.,!@#$%^&*()\"\'=]/',
'messages' => 'Please only numbers without spaces'
)
)
),
'attribs' => array('disabled' => 'disabled'),
));
$this->addElement('textarea', 'comment', array(
'label' => 'Hume Code',
'required' => true,
'class' => 'markItUp',
'id' => 'comment'
));
$this->addElement('checkbox', 'Few_Compile', array(
'checked' => '1',
'label' => 'Fewer Results',
'class' => 'Fewer_Results'
));
$this->addElement('submit', 'Compile_Recourses', array(
'ignore' => true,
'label' => 'Compile Recourses',
'class' => 'Compile_Recourses'
));
$this->addElement('radio', 'Time_Out', array(
'label' => 'Compiling Time',
'multiOptions' => array(
'5' => '5s',
'10' => '10s',
'15' => '15s',
),
'value' => array('5s' => '5s')
));
$this->addElement('checkbox', 'Compile_Advanced', array(
'checked' => '0',
'label' => "Set Heap Wire Stack Size's",
'id' => 'Compile_Advanced',
));
$this->addElement('textarea', 'Heap_Size', array(
'label' => 'Heap Size',
'Id' => 'Heap-Size',
'cols' => 5,
'rows' => 1,
'validators' => array(
array('regex', true, array(
'pattern' => '/[0-9]/',
'messages' => 'Please only numbers without spaces'
)
)
),
'attribs' => array('disabled' => 'disabled'),
));
$this->addElement('textarea', 'Wire_Heap_Size', array(
'label' => 'Wire_Heap Size',
'Id' => 'Wire-Heap-Size',
'cols' => 5,
'rows' => 1,
'validators' => array(
array('regex', false, array(
'pattern' => '/[0-9]/',
'messages' => 'Please only numbers without spaces'
)
)
),
'attribs' => array('disabled' => 'disabled'),
));
$this->addElement('textarea', 'Stack_Size', array(
'label' => 'Stack Size',
'Id' => 'Stack-Size',
'cols' => 5,
'rows' => 1,
'validators' => array(
array('regex', false, array(
'pattern' => '/[0-9]/',
'messages' => 'Please only numbers without spaces'
)
)
),
'attribs' => array('disabled' => 'disabled'),
));
$this->addElement('submit', 'Execute_Hume', array(
'ignore' => true,
'label' => 'Execute And Compile Hume',
));
$this->addElement('submit', 'Compile_Hume', array(
'ignore' => true,
'label' => 'Compile Hume',
));
// die($this->UserHasId);
if ($this->UserHasId) {
$this->addElement('submit', 'Save_File', array(
'ignore' => true,
'label' => 'Save File',
));
}
jQueryhide()
和show()
函数
<script type="text/javascript">
$(document).ready(function(){
$("#Advanced_Settings").click(function(){
if ($('#Advanced_Settings').is(':checked')) {
$('#Advanced_Options').removeAttr('disabled');
$('#Few_Compile').attr("disabled", "disabled");
} else {
$('#Advanced_Options').attr("disabled", "disabled");
$('#Few_Compile').removeAttr('disabled');
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function(){
$("#Compile_Advanced").click(function(){
if ($('#Compile_Advanced').is(':checked')) {
$('#Heap_Size').removeAttr('disabled');
$('#Wire_Heap_Size').removeAttr('disabled');
$('#Stack_Size').removeAttr('disabled');
} else {
$('#Heap_Size').attr("disabled", "disabled");
$('#Wire_Heap_Size').attr("disabled", "disabled");
$('#Stack_Size').attr("disabled", "disabled");
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function(){
var WorkSpace = $("#Work_Space").val();
if(WorkSpace == "Hume_Compile_Selection"){
$('#Time_Out-label').hide();
$('#Time_Out-element').hide();
$('#Compile_Advanced-label').hide();
$('#Compile_Advanced-element').hide();
$('#Heap_Size-label').hide();
$('#Heap_Size-element').hide();
$('#Wire_Heap_Size-label').hide();
$('#Wire_Heap_Size-element').hide();
$('#Stack_Size-label').hide();
$('#Stack_Size-element').hide();
$('#Compile_Hume-element').hide();
$('#Execute_Hume').hide();
$('#Advanced_Settings-label').hide();
$('#Advanced_Settings-element').hide();
$('#Advanced_Options-label').hide();
$('#Advanced_Options-element').hide();
$('#Few_Compile-label').hide();
$('#Few_Compile-element').hide();
$('#Compile_Recourses-label').hide();
$('#Compile_Recourses-element').hide();
}
$("#Work_Space").change(function(){
var WorkSpace = $(this).val();
if(WorkSpace == "Hume_Recourses"){
$('#Time_Out-label').hide();
$('#Time_Out-element').hide();
$('#Compile_Advanced-label').hide();
$('#Compile_Advanced-element').hide();
$('#Heap_Size-label').hide();
$('#Heap_Size-element').hide();
$('#Wire_Heap_Size-label').hide();
$('#Wire_Heap_Size-element').hide();
$('#Stack_Size-label').hide();
$('#Stack_Size-element').hide();
$('#Compile_Hume-element').hide();
$('#Execute_Hume').hide();
$('#Advanced_Settings-label').show();
$('#Advanced_Settings-element').show();
$('#Advanced_Options-label').show();
$('#Advanced_Options-element').show();
$('#Few_Compile-label').show();
$('#Few_Compile-element').show();
$('#Compile_Recourses-label').show();
$('#Compile_Recourses-element').show();
}else if(WorkSpace == "Hume_Compile"){
$('#Time_Out-label').show();
$('#Time_Out-element').show();
$('#Compile_Advanced-label').show();
$('#Compile_Advanced-element').show();
$('#Heap_Size-label').show();
$('#Heap_Size-element').show();
$('#Wire_Heap_Size-label').show();
$('#Wire_Heap_Size-element').show();
$('#Stack_Size-label').show();
$('#Stack_Size-element').show();
$('#Compile_Hume-element').show();
$('#Execute_Hume').show();
$('#Advanced_Settings-label').hide();
$('#Advanced_Settings-element').hide();
$('#Advanced_Options-label').hide();
$('#Advanced_Options-element').hide();
$('#Few_Compile-label').hide();
$('#Few_Compile-element').hide();
$('#Compile_Recourses-label').hide();
$('#Compile_Recourses-element').hide();
}else if(WorkSpace == "Hume_Compile_Selection"){
$('#Time_Out-label').hide();
$('#Time_Out-element').hide();
$('#Compile_Advanced-label').hide();
$('#Compile_Advanced-element').hide();
$('#Heap_Size-label').hide();
$('#Heap_Size-element').hide();
$('#Wire_Heap_Size-label').hide();
$('#Wire_Heap_Size-element').hide();
$('#Stack_Size-label').hide();
$('#Stack_Size-element').hide();
$('#Compile_Hume-element').hide();
$('#Execute_Hume').hide();
$('#Advanced_Settings-label').hide();
$('#Advanced_Settings-element').hide();
$('#Advanced_Options-label').hide();
$('#Advanced_Options-element').hide();
$('#Few_Compile-label').hide();
$('#Few_Compile-element').hide();
$('#Compile_Recourses-label').hide();
$('#Compile_Recourses-element').hide();
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function(){
var count = 0;
var Editor = $("#Editor").val();
if(Editor == "Choose Editor"){
$('#File_Name-label').hide();
$('#File_Name-element').hide();
$('#File_Name').hide();
$('#comment-label').hide();
$('#comment-element').hide();
$('#comment').hide();
$('#iframe-ymacs').hide();
$('#ymacs-use').hide();
}
$("#Editor").change(function(){
var Editor = $(this).val();
if(Editor == "TinyMce"){
$('#File_Name-label').show();
$('#File_Name-element').show();
$('#File_Name').show();
$('#comment-label').show();
$('#comment-element').show();
$('#comment').show();
$('#iframe-ymacs').hide();
$('#ymacs-use').hide();
$('#accordionResizer').show();
if(count != 0){
$('#comment').hide();
$('#comment_parent').show();
}
if(count == 0){
$('#comment-label').show();
$('#comment-element').show();
$('#comment').show();
tinyMCE.init({
// General options
mode : "exact",
elements : "comment",
theme : "advanced",
skin : "o2k7",
skin_variant : "black",
plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
save_onsavecallback : "saveContent",
// Theme options
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull",
theme_advanced_buttons2 : "search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,forecolor,backcolor",
theme_advanced_buttons3 : "hr,removeformat,|,sub,sup,|,charmap,|,print,|,fullscreen,code",
theme_advanced_buttons4 : "styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : false,
// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
}
});
count++;
}
}else if(Editor == "Choose Editor"){
$('#File_Name-label').hide();
$('#File_Name-element').hide();
$('#File_Name').hide();
$('#comment-label').hide();
$('#comment-element').hide();
$('#comment').hide();
$('#iframe-ymacs').hide();
$('#ymacs-use').hide();
$('#accordionResizer').show();
}else if(Editor == "Ymacs"){
$('#File_Name-label').show();
$('#File_Name-element').show();
$('#File_Name').show();
$('#comment-label').hide();
$('#comment-element').hide();
$('#comment').hide();
$('#iframe-ymacs').show();
//$('#iframe-ymacs').contentWindow.location.reload(true);
// document.getElementById("#iframe-ymacs").contentDocument.location.reload(true);
//var iframe = document.getElementById("#iframe-ymacs");
//alert(iframe);
// iframe.src = iframe.src;
jQuery.each($("#iframe-ymacs"), function() {
$(this).attr({
src: $(this).attr("/index/editor")
});
});
$('#iframe-ymacs').attr('src', '/index/editor');
$('#ymacs-use').show();
$('#accordionResizer').hide();
//autoResize('#ymacs');
//$('#accordionResizer').hide();
}
});
});
</script>