我在网站上有Gravity表单,有两个选项选择,基于第一个选择,显示第二个选项(我已经使用javascript实现了这一点)。它完全适用于Chrome,Firefox,但它不适用于SAFARI。
使用过的Javascript是:
$(document).ready(function() {
// 5: book suits form
if ($('#input_5_4').length > 0) {
var store_lists_book_suits;
$('#input_5_4').on('change', function () {
current_state = $(this).val();
output = '';
state_string = '(' + current_state + ')';
console.log(state_string);
$("#input_5_5").val($("#input_5_5 option:first").val());
$.each($('#input_5_5 option'), function (idx, val) {
// assume state is in option format of ([state])
idx_of_state = $(val).val().indexOf(state_string);
if (idx == 0 || idx_of_state > 0) {
$(val).show();
} else {
$(val).hide();
}
});
});
$.ajax({
type:"GET",
url: myAjax.ajaxurl,
data:{action: 'state_list_book_suits'},
beforeSend: function(){
$('#catvalue').html('<i class="fa fa-spinner fa-1x" style="color:#000;text-align:center;"></i>');
},
dataType: 'html',
success: function (data) {
//console.log (data);
store_lists = JSON.parse(data);
//console.log(store_lists.men);
//store_lists_women = JSON.parse(data).women;
output = '<option>-- Please select --</option>';
$.each(store_lists, function (index, value) {
output += '<option style="display:none" value="' + value.state_name + '" data-email="' + value.state_email + '">' + value.state_name + '</option>';
});
$('#input_5_5').html(output);
}
});
$('#input_5_5').on('change', function () {
selected_email = $('#input_5_5 option:selected').data('email');
$('#input_5_18').val(selected_email);
});
// Couldn't do in Gravity Form, so do it here instead.
$('#input_5_7').attr('type', 'number');
$('#input_5_7').attr('min', 3);
$('#field_5_7 .instruction').html('Minimum 3 suits');
// This function is to prevent Chrome frontend validation. It stop working actual submit function of the form
$('#gform_submit_button_5').on('click', function(){
$('#gform_5').submit();
});
}
});