Hello people!
I have a strange problem in the code below.
It runs fine with the new value being use/displayed but on all the following executions it will onbly use the values from the first run whatever you type in.
Any ideas?
Thanks
<script type="text/javascript">
function showEthnicityDialog(eth_desc, eth_code, id) {
var $dialog=null;
$dialog = $('<div></div>')
.html('<script src="/Scripts/jquery.validate.min.js" type="text/javascript"><' + '/script>' +
'<script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></' + 'script>' +
'<form action="/Ethnicity/edit" method="post">' +
'<fieldset>' +
'<legend>Ethnicity</legend>' +
'<label for="Ethnicity1">Ethnicity Description</label>' +
'<input class="text-box single-line" id="New_Ethnicity" name="New_Ethnicity" type="text" value="' + eth_desc + '" />' +
'<div class="editor-label">' +
'<label for="Code">Code</label>' +
'</div>' +
'<div class="editor-field">' +
'<input class="text-box single-line" id="New_Code" name="New_Code" value="' + eth_code + '" type="text" />' +
'<span class="field-validation-valid" data-valmsg-for="Code" data-valmsg-replace="true"></span>' +
'</div>' +
'<input type="submit" id="submit_ethnicity" style="visibility: hidden" value="Save" />' +
'</fieldset>' +
'<p></p>' +
'</form>')
.dialog({
autoOpen: false,
overlay: { opacity: 0.1, background: 'Black' },
buttons: {
'Save': function () {
function ethnicity(eth, code) {
this.Ethnicity1 = eth;
this.Code = code
};
var new_code = $('#New_Code').val();
var new_desc = $('#New_Ethnicity').val();
alert("Before values: " + new_code + "/ " + new_desc); // Always the value from the first run!
var code_marker = '#code_' + id;
var values = new ethnicity(new_desc, new_code);
alert(values.Ethnicity1 + "/" + values.Code);
$.post('@Url.Action("/edit")', values, function (data) { });
// setTimeout(function () { }, 1000)
// $.post('@Url.Action("/readCodeFromDB")', { 'key': eth_desc }, function (data) { $(code_marker).html(data); });
$(code_marker).html($('#New_Code').val());
delete new_code;
delete new_desc;
delete values;
$(this).dialog('destroy');
},
'Cancel': function () {
$(this).dialog('destroy');
}
},
modal: true,
closeOnEscape: true,
width: 520,
resizable: false,
title: "Edit: " + eth_desc,
show: { effect: "fade", speed: "slow" },
hide: { effect: "fade", speed: "slow" }
});
$dialog.dialog('open');
//return false //cancel eventbubbeling
};
</script>