Текущее введенное значение в поле не подставляется в аттрибут, с атрибута значение считывается.
У вас не работает просто потому, что вы не правильно получаете значение
var news=$("#edit_"+DbNumberID).val(); // Вы уже получили строку
if((news).val()==="") // А тут вы у строки опять пытаетесь получить значение. Оставьте просто if(news === '')
Еще в установке параметров url в ajax нужно устанавливать строку запроса или объект. А вы просто передаете значение с поля ввода.
Вот полный код
$("a.cor_button").click(function (e) {
var clickedID = this.id.split("-"); //Разбиваем строку (Split работает аналогично PHP explode)
var DbNumberID = clickedID[1]; //и получаем номер из массива
$("#item_"+DbNumberID).hide()//Строка с текстом прячется при нажатии на карандаш
$("#edit_"+DbNumberID).show();//спрятанная (display: none) строка input "text" появляется
$("#edit_"+DbNumberID).focus();
}).on('change',function(e)
{
var clickedID = this.id.split("-"); //Разбиваем строку (Split работает аналогично PHP explode)
var DbNumberID = clickedID[1];
var news=$("#edit_"+DbNumberID).val(); //берем из появившегося input text`a значение
if(news ==="") //simple validation
{
alert("Введите текст!");
return false;
}else{
jQuery.ajax({
type: "POST", // HTTP метод POST или GET
url: "response.php", //url-адрес, по которому будет отправлен запрос
dataType:"text", // Тип данных, которые пришлет сервер в ответ на запрос ,например, HTML, json
data: { "news": news }, //данные, которые будут отправлены на сервер (post переменные)
success:function(response){
$("#jack_"+DbNumberID).html(news);//если все успешно строка становится как input text
e.stopImmediatePropagation();
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError); //выводим ошибку
}
});
$(".editbox").on("mouseup",function(e)
{
e.stopImmediatePropagation();
});
// Outside click action
$(document).mouseup(function()// если кликнуть по документу строка редактирования скрывается
{
$(".editbox").hide();
$(".item").show();
});
}