123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761 |
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * @fileoverview function used for index manipulation pages
- * @name Table Structure
- *
- * @requires jQuery
- * @requires jQueryUI
- * @required js/functions.js
- */
- /**
- * Returns the array of indexes based on the index choice
- *
- * @param index_choice index choice
- */
- function PMA_getIndexArray (index_choice) {
- var source_array = null;
- switch (index_choice.toLowerCase()) {
- case 'primary':
- source_array = primary_indexes;
- break;
- case 'unique':
- source_array = unique_indexes;
- break;
- case 'index':
- source_array = indexes;
- break;
- case 'fulltext':
- source_array = fulltext_indexes;
- break;
- case 'spatial':
- source_array = spatial_indexes;
- break;
- default:
- return null;
- }
- return source_array;
- }
- /**
- * Hides/shows the inputs and submits appropriately depending
- * on whether the index type chosen is 'SPATIAL' or not.
- */
- function checkIndexType () {
- /**
- * @var Object Dropdown to select the index choice.
- */
- var $select_index_choice = $('#select_index_choice');
- /**
- * @var Object Dropdown to select the index type.
- */
- var $select_index_type = $('#select_index_type');
- /**
- * @var Object Table header for the size column.
- */
- var $size_header = $('#index_columns').find('thead tr th:nth-child(2)');
- /**
- * @var Object Inputs to specify the columns for the index.
- */
- var $column_inputs = $('select[name="index[columns][names][]"]');
- /**
- * @var Object Inputs to specify sizes for columns of the index.
- */
- var $size_inputs = $('input[name="index[columns][sub_parts][]"]');
- /**
- * @var Object Footer containg the controllers to add more columns
- */
- var $add_more = $('#index_frm').find('.add_more');
- if ($select_index_choice.val() === 'SPATIAL') {
- // Disable and hide the size column
- $size_header.hide();
- $size_inputs.each(function () {
- $(this)
- .prop('disabled', true)
- .parent('td').hide();
- });
- // Disable and hide the columns of the index other than the first one
- var initial = true;
- $column_inputs.each(function () {
- $column_input = $(this);
- if (! initial) {
- $column_input
- .prop('disabled', true)
- .parent('td').hide();
- } else {
- initial = false;
- }
- });
- // Hide controllers to add more columns
- $add_more.hide();
- } else {
- // Enable and show the size column
- $size_header.show();
- $size_inputs.each(function () {
- $(this)
- .prop('disabled', false)
- .parent('td').show();
- });
- // Enable and show the columns of the index
- $column_inputs.each(function () {
- $(this)
- .prop('disabled', false)
- .parent('td').show();
- });
- // Show controllers to add more columns
- $add_more.show();
- }
- if ($select_index_choice.val() === 'SPATIAL' ||
- $select_index_choice.val() === 'FULLTEXT') {
- $select_index_type.val('').prop('disabled', true);
- } else {
- $select_index_type.prop('disabled', false);
- }
- }
- /**
- * Sets current index information into form parameters.
- *
- * @param array source_array Array containing index columns
- * @param string index_choice Choice of index
- *
- * @return void
- */
- function PMA_setIndexFormParameters (source_array, index_choice) {
- if (index_choice === 'index') {
- $('input[name="indexes"]').val(JSON.stringify(source_array));
- } else {
- $('input[name="' + index_choice + '_indexes"]').val(JSON.stringify(source_array));
- }
- }
- /**
- * Removes a column from an Index.
- *
- * @param string col_index Index of column in form
- *
- * @return void
- */
- function PMA_removeColumnFromIndex (col_index) {
- // Get previous index details.
- var previous_index = $('select[name="field_key[' + col_index + ']"]')
- .attr('data-index');
- if (previous_index.length) {
- previous_index = previous_index.split(',');
- var source_array = PMA_getIndexArray(previous_index[0]);
- if (source_array === null) {
- return;
- }
- // Remove column from index array.
- var source_length = source_array[previous_index[1]].columns.length;
- for (var i = 0; i < source_length; i++) {
- if (source_array[previous_index[1]].columns[i].col_index === col_index) {
- source_array[previous_index[1]].columns.splice(i, 1);
- }
- }
- // Remove index completely if no columns left.
- if (source_array[previous_index[1]].columns.length === 0) {
- source_array.splice(previous_index[1], 1);
- }
- // Update current index details.
- $('select[name="field_key[' + col_index + ']"]').attr('data-index', '');
- // Update form index parameters.
- PMA_setIndexFormParameters(source_array, previous_index[0].toLowerCase());
- }
- }
- /**
- * Adds a column to an Index.
- *
- * @param array source_array Array holding corresponding indexes
- * @param string array_index Index of an INDEX in array
- * @param string index_choice Choice of Index
- * @param string col_index Index of column on form
- *
- * @return void
- */
- function PMA_addColumnToIndex (source_array, array_index, index_choice, col_index) {
- if (col_index >= 0) {
- // Remove column from other indexes (if any).
- PMA_removeColumnFromIndex(col_index);
- }
- var index_name = $('input[name="index[Key_name]"]').val();
- var index_comment = $('input[name="index[Index_comment]"]').val();
- var key_block_size = $('input[name="index[Key_block_size]"]').val();
- var parser = $('input[name="index[Parser]"]').val();
- var index_type = $('select[name="index[Index_type]"]').val();
- var columns = [];
- $('#index_columns').find('tbody').find('tr').each(function () {
- // Get columns in particular order.
- var col_index = $(this).find('select[name="index[columns][names][]"]').val();
- var size = $(this).find('input[name="index[columns][sub_parts][]"]').val();
- columns.push({
- 'col_index': col_index,
- 'size': size
- });
- });
- // Update or create an index.
- source_array[array_index] = {
- 'Key_name': index_name,
- 'Index_comment': index_comment,
- 'Index_choice': index_choice.toUpperCase(),
- 'Key_block_size': key_block_size,
- 'Parser': parser,
- 'Index_type': index_type,
- 'columns': columns
- };
- // Display index name (or column list)
- var displayName = index_name;
- if (displayName === '') {
- var columnNames = [];
- $.each(columns, function () {
- columnNames.push($('input[name="field_name[' + this.col_index + ']"]').val());
- });
- displayName = '[' + columnNames.join(', ') + ']';
- }
- $.each(columns, function () {
- var id = 'index_name_' + this.col_index + '_8';
- var $name = $('#' + id);
- if ($name.length === 0) {
- $name = $('<a id="' + id + '" href="#" class="ajax show_index_dialog"></a>');
- $name.insertAfter($('select[name="field_key[' + this.col_index + ']"]'));
- }
- var $text = $('<small>').text(displayName);
- $name.html($text);
- });
- if (col_index >= 0) {
- // Update index details on form.
- $('select[name="field_key[' + col_index + ']"]')
- .attr('data-index', index_choice + ',' + array_index);
- }
- PMA_setIndexFormParameters(source_array, index_choice.toLowerCase());
- }
- /**
- * Get choices list for a column to create a composite index with.
- *
- * @param string index_choice Choice of index
- * @param array source_array Array hodling columns for particular index
- *
- * @return jQuery Object
- */
- function PMA_getCompositeIndexList (source_array, col_index) {
- // Remove any previous list.
- if ($('#composite_index_list').length) {
- $('#composite_index_list').remove();
- }
- // Html list.
- var $composite_index_list = $(
- '<ul id="composite_index_list">' +
- '<div>' + PMA_messages.strCompositeWith + '</div>' +
- '</ul>'
- );
- // Add each column to list available for composite index.
- var source_length = source_array.length;
- var already_present = false;
- for (var i = 0; i < source_length; i++) {
- var sub_array_len = source_array[i].columns.length;
- var column_names = [];
- for (var j = 0; j < sub_array_len; j++) {
- column_names.push(
- $('input[name="field_name[' + source_array[i].columns[j].col_index + ']"]').val()
- );
- if (col_index === source_array[i].columns[j].col_index) {
- already_present = true;
- }
- }
- $composite_index_list.append(
- '<li>' +
- '<input type="radio" name="composite_with" ' +
- (already_present ? 'checked="checked"' : '') +
- ' id="composite_index_' + i + '" value="' + i + '">' +
- '<label for="composite_index_' + i + '">' + column_names.join(', ') +
- '</lablel>' +
- '</li>'
- );
- }
- return $composite_index_list;
- }
- /**
- * Shows 'Add Index' dialog.
- *
- * @param array source_array Array holding particluar index
- * @param string array_index Index of an INDEX in array
- * @param array target_columns Columns for an INDEX
- * @param string col_index Index of column on form
- * @param object index Index detail object
- *
- * @return void
- */
- function PMA_showAddIndexDialog (source_array, array_index, target_columns, col_index, index) {
- // Prepare post-data.
- var $table = $('input[name="table"]');
- var table = $table.length > 0 ? $table.val() : '';
- var post_data = {
- server: PMA_commonParams.get('server'),
- db: $('input[name="db"]').val(),
- table: table,
- ajax_request: 1,
- create_edit_table: 1,
- index: index
- };
- var columns = {};
- for (var i = 0; i < target_columns.length; i++) {
- var column_name = $('input[name="field_name[' + target_columns[i] + ']"]').val();
- var column_type = $('select[name="field_type[' + target_columns[i] + ']"]').val().toLowerCase();
- columns[column_name] = [column_type, target_columns[i]];
- }
- post_data.columns = JSON.stringify(columns);
- var button_options = {};
- button_options[PMA_messages.strGo] = function () {
- var is_missing_value = false;
- $('select[name="index[columns][names][]"]').each(function () {
- if ($(this).val() === '') {
- is_missing_value = true;
- }
- });
- if (! is_missing_value) {
- PMA_addColumnToIndex(
- source_array,
- array_index,
- index.Index_choice,
- col_index
- );
- } else {
- PMA_ajaxShowMessage(
- '<div class="error"><img src="themes/dot.gif" title="" alt=""' +
- ' class="icon ic_s_error" /> ' + PMA_messages.strMissingColumn +
- ' </div>', false
- );
- return false;
- }
- $(this).dialog('close');
- };
- button_options[PMA_messages.strCancel] = function () {
- if (col_index >= 0) {
- // Handle state on 'Cancel'.
- var $select_list = $('select[name="field_key[' + col_index + ']"]');
- if (! $select_list.attr('data-index').length) {
- $select_list.find('option[value*="none"]').attr('selected', 'selected');
- } else {
- var previous_index = $select_list.attr('data-index').split(',');
- $select_list.find('option[value*="' + previous_index[0].toLowerCase() + '"]')
- .attr('selected', 'selected');
- }
- }
- $(this).dialog('close');
- };
- var $msgbox = PMA_ajaxShowMessage();
- $.post('tbl_indexes.php', post_data, function (data) {
- if (data.success === false) {
- // in the case of an error, show the error message returned.
- PMA_ajaxShowMessage(data.error, false);
- } else {
- PMA_ajaxRemoveMessage($msgbox);
- // Show dialog if the request was successful
- var $div = $('<div/>');
- $div
- .append(data.message)
- .dialog({
- title: PMA_messages.strAddIndex,
- width: 450,
- minHeight: 250,
- open: function () {
- checkIndexName('index_frm');
- PMA_showHints($div);
- PMA_init_slider();
- $('#index_columns').find('td').each(function () {
- $(this).css('width', $(this).width() + 'px');
- });
- $('#index_columns').find('tbody').sortable({
- axis: 'y',
- containment: $('#index_columns').find('tbody'),
- tolerance: 'pointer'
- });
- // We dont need the slider at this moment.
- $(this).find('fieldset.tblFooters').remove();
- },
- modal: true,
- buttons: button_options,
- close: function () {
- $(this).remove();
- }
- });
- }
- });
- }
- /**
- * Creates a advanced index type selection dialog.
- *
- * @param array source_array Array holding a particular type of indexes
- * @param string index_choice Choice of index
- * @param string col_index Index of new column on form
- *
- * @return void
- */
- function PMA_indexTypeSelectionDialog (source_array, index_choice, col_index) {
- var $single_column_radio = $('<input type="radio" id="single_column" name="index_choice"' +
- ' checked="checked">' +
- '<label for="single_column">' + PMA_messages.strCreateSingleColumnIndex + '</label>');
- var $composite_index_radio = $('<input type="radio" id="composite_index"' +
- ' name="index_choice">' +
- '<label for="composite_index">' + PMA_messages.strCreateCompositeIndex + '</label>');
- var $dialog_content = $('<fieldset id="advance_index_creator"></fieldset>');
- $dialog_content.append('<legend>' + index_choice.toUpperCase() + '</legend>');
- // For UNIQUE/INDEX type, show choice for single-column and composite index.
- $dialog_content.append($single_column_radio);
- $dialog_content.append($composite_index_radio);
- var button_options = {};
- // 'OK' operation.
- button_options[PMA_messages.strGo] = function () {
- if ($('#single_column').is(':checked')) {
- var index = {
- 'Key_name': (index_choice === 'primary' ? 'PRIMARY' : ''),
- 'Index_choice': index_choice.toUpperCase()
- };
- PMA_showAddIndexDialog(source_array, (source_array.length), [col_index], col_index, index);
- }
- if ($('#composite_index').is(':checked')) {
- if ($('input[name="composite_with"]').length !== 0 && $('input[name="composite_with"]:checked').length === 0
- ) {
- PMA_ajaxShowMessage(
- '<div class="error"><img src="themes/dot.gif" title=""' +
- ' alt="" class="icon ic_s_error" /> ' +
- PMA_messages.strFormEmpty +
- ' </div>',
- false
- );
- return false;
- }
- var array_index = $('input[name="composite_with"]:checked').val();
- var source_length = source_array[array_index].columns.length;
- var target_columns = [];
- for (var i = 0; i < source_length; i++) {
- target_columns.push(source_array[array_index].columns[i].col_index);
- }
- target_columns.push(col_index);
- PMA_showAddIndexDialog(source_array, array_index, target_columns, col_index,
- source_array[array_index]);
- }
- $(this).remove();
- };
- button_options[PMA_messages.strCancel] = function () {
- // Handle state on 'Cancel'.
- var $select_list = $('select[name="field_key[' + col_index + ']"]');
- if (! $select_list.attr('data-index').length) {
- $select_list.find('option[value*="none"]').attr('selected', 'selected');
- } else {
- var previous_index = $select_list.attr('data-index').split(',');
- $select_list.find('option[value*="' + previous_index[0].toLowerCase() + '"]')
- .attr('selected', 'selected');
- }
- $(this).remove();
- };
- var $dialog = $('<div/>').append($dialog_content).dialog({
- minWidth: 525,
- minHeight: 200,
- modal: true,
- title: PMA_messages.strAddIndex,
- resizable: false,
- buttons: button_options,
- open: function () {
- $('#composite_index').on('change', function () {
- if ($(this).is(':checked')) {
- $dialog_content.append(PMA_getCompositeIndexList(source_array, col_index));
- }
- });
- $('#single_column').on('change', function () {
- if ($(this).is(':checked')) {
- if ($('#composite_index_list').length) {
- $('#composite_index_list').remove();
- }
- }
- });
- },
- close: function () {
- $('#composite_index').off('change');
- $('#single_column').off('change');
- $(this).remove();
- }
- });
- }
- /**
- * Unbind all event handlers before tearing down a page
- */
- AJAX.registerTeardown('indexes.js', function () {
- $(document).off('click', '#save_index_frm');
- $(document).off('click', '#preview_index_frm');
- $(document).off('change', '#select_index_choice');
- $(document).off('click', 'a.drop_primary_key_index_anchor.ajax');
- $(document).off('click', '#table_index tbody tr td.edit_index.ajax, #index_div .add_index.ajax');
- $(document).off('click', '#index_frm input[type=submit]');
- $('body').off('change', 'select[name*="field_key"]');
- $(document).off('click', '.show_index_dialog');
- });
- /**
- * @description <p>Ajax scripts for table index page</p>
- *
- * Actions ajaxified here:
- * <ul>
- * <li>Showing/hiding inputs depending on the index type chosen</li>
- * <li>create/edit/drop indexes</li>
- * </ul>
- */
- AJAX.registerOnload('indexes.js', function () {
- // Re-initialize variables.
- primary_indexes = [];
- unique_indexes = [];
- indexes = [];
- fulltext_indexes = [];
- spatial_indexes = [];
- // for table creation form
- var $engine_selector = $('.create_table_form select[name=tbl_storage_engine]');
- if ($engine_selector.length) {
- PMA_hideShowConnection($engine_selector);
- }
- var $form = $('#index_frm');
- if ($form.length > 0) {
- showIndexEditDialog($form);
- }
- $(document).on('click', '#save_index_frm', function (event) {
- event.preventDefault();
- var $form = $('#index_frm');
- var argsep = PMA_commonParams.get('arg_separator');
- var submitData = $form.serialize() + argsep + 'do_save_data=1' + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true';
- var $msgbox = PMA_ajaxShowMessage(PMA_messages.strProcessingRequest);
- AJAX.source = $form;
- $.post($form.attr('action'), submitData, AJAX.responseHandler);
- });
- $(document).on('click', '#preview_index_frm', function (event) {
- event.preventDefault();
- PMA_previewSQL($('#index_frm'));
- });
- $(document).on('change', '#select_index_choice', function (event) {
- event.preventDefault();
- checkIndexType();
- checkIndexName('index_frm');
- });
- /**
- * Ajax Event handler for 'Drop Index'
- */
- $(document).on('click', 'a.drop_primary_key_index_anchor.ajax', function (event) {
- event.preventDefault();
- var $anchor = $(this);
- /**
- * @var $curr_row Object containing reference to the current field's row
- */
- var $curr_row = $anchor.parents('tr');
- /** @var Number of columns in the key */
- var rows = $anchor.parents('td').attr('rowspan') || 1;
- /** @var Rows that should be hidden */
- var $rows_to_hide = $curr_row;
- for (var i = 1, $last_row = $curr_row.next(); i < rows; i++, $last_row = $last_row.next()) {
- $rows_to_hide = $rows_to_hide.add($last_row);
- }
- var question = escapeHtml(
- $curr_row.children('td')
- .children('.drop_primary_key_index_msg')
- .val()
- );
- PMA_confirmPreviewSQL(question, $anchor.attr('href'), function (url) {
- var $msg = PMA_ajaxShowMessage(PMA_messages.strDroppingPrimaryKeyIndex, false);
- var params = getJSConfirmCommonParam(this, $anchor.getPostData());
- $.post(url, params, function (data) {
- if (typeof data !== 'undefined' && data.success === true) {
- PMA_ajaxRemoveMessage($msg);
- var $table_ref = $rows_to_hide.closest('table');
- if ($rows_to_hide.length === $table_ref.find('tbody > tr').length) {
- // We are about to remove all rows from the table
- $table_ref.hide('medium', function () {
- $('div.no_indexes_defined').show('medium');
- $rows_to_hide.remove();
- });
- $table_ref.siblings('div.notice').hide('medium');
- } else {
- // We are removing some of the rows only
- $rows_to_hide.hide('medium', function () {
- $(this).remove();
- });
- }
- if ($('.result_query').length) {
- $('.result_query').remove();
- }
- if (data.sql_query) {
- $('<div class="result_query"></div>')
- .html(data.sql_query)
- .prependTo('#structure_content');
- PMA_highlightSQL($('#page_content'));
- }
- PMA_commonActions.refreshMain(false, function () {
- $('a.ajax[href^=#indexes]').click();
- });
- PMA_reloadNavigation();
- } else {
- PMA_ajaxShowMessage(PMA_messages.strErrorProcessingRequest + ' : ' + data.error, false);
- }
- }); // end $.post()
- }); // end $.PMA_confirm()
- }); // end Drop Primary Key/Index
- /**
- *Ajax event handler for index edit
- **/
- $(document).on('click', '#table_index tbody tr td.edit_index.ajax, #index_div .add_index.ajax', function (event) {
- event.preventDefault();
- var url;
- var title;
- if ($(this).find('a').length === 0) {
- // Add index
- var valid = checkFormElementInRange(
- $(this).closest('form')[0],
- 'added_fields',
- 'Column count has to be larger than zero.'
- );
- if (! valid) {
- return;
- }
- url = $(this).closest('form').serialize();
- title = PMA_messages.strAddIndex;
- } else {
- // Edit index
- url = $(this).find('a').getPostData();
- title = PMA_messages.strEditIndex;
- }
- url += PMA_commonParams.get('arg_separator') + 'ajax_request=true';
- indexEditorDialog(url, title, function () {
- // refresh the page using ajax
- PMA_commonActions.refreshMain(false, function () {
- $('a.ajax[href^=#indexes]').click();
- });
- });
- });
- /**
- * Ajax event handler for advanced index creation during table creation
- * and column addition.
- */
- $('body').on('change', 'select[name*="field_key"]', function () {
- // Index of column on Table edit and create page.
- var col_index = /\d+/.exec($(this).attr('name'));
- col_index = col_index[0];
- // Choice of selected index.
- var index_choice = /[a-z]+/.exec($(this).val());
- index_choice = index_choice[0];
- // Array containing corresponding indexes.
- var source_array = null;
- if (index_choice === 'none') {
- PMA_removeColumnFromIndex(col_index);
- var id = 'index_name_' + '0' + '_8';
- var $name = $('#' + id);
- if ($name.length === 0) {
- $name = $('<a id="' + id + '" href="#" class="ajax show_index_dialog"></a>');
- $name.insertAfter($('select[name="field_key[' + '0' + ']"]'));
- }
- $name.html('');
- return false;
- }
- // Select a source array.
- source_array = PMA_getIndexArray(index_choice);
- if (source_array === null) {
- return;
- }
- if (source_array.length === 0) {
- var index = {
- 'Key_name': (index_choice === 'primary' ? 'PRIMARY' : ''),
- 'Index_choice': index_choice.toUpperCase()
- };
- PMA_showAddIndexDialog(source_array, 0, [col_index], col_index, index);
- } else {
- if (index_choice === 'primary') {
- var array_index = 0;
- var source_length = source_array[array_index].columns.length;
- var target_columns = [];
- for (var i = 0; i < source_length; i++) {
- target_columns.push(source_array[array_index].columns[i].col_index);
- }
- target_columns.push(col_index);
- PMA_showAddIndexDialog(source_array, array_index, target_columns, col_index,
- source_array[array_index]);
- } else {
- // If there are multiple columns selected for an index, show advanced dialog.
- PMA_indexTypeSelectionDialog(source_array, index_choice, col_index);
- }
- }
- });
- $(document).on('click', '.show_index_dialog', function (e) {
- e.preventDefault();
- // Get index details.
- var previous_index = $(this).prev('select')
- .attr('data-index')
- .split(',');
- var index_choice = previous_index[0];
- var array_index = previous_index[1];
- var source_array = PMA_getIndexArray(index_choice);
- if (source_array !== null) {
- var source_length = source_array[array_index].columns.length;
- var target_columns = [];
- for (var i = 0; i < source_length; i++) {
- target_columns.push(source_array[array_index].columns[i].col_index);
- }
- PMA_showAddIndexDialog(source_array, array_index, target_columns, -1, source_array[array_index]);
- }
- });
- $('#index_frm').on('submit', function () {
- if (typeof(this.elements['index[Key_name]'].disabled) !== 'undefined') {
- this.elements['index[Key_name]'].disabled = false;
- }
- });
- });
|