LINUX.ORG.RU

Qt QWebkit

 


0

1

Буквально пару дней пишу на Qt, и не могу получить значение Value простого инпут элемента.

    QWebElement document = webPage->mainFrame()->documentElement();

    QWebElement firstTextInput = document.findFirst("INPUT[id='"+siteConf.loginFieldName+"']");
    qDebug() << firstTextInput.attribute("id");
    qDebug() << firstTextInput.attribute("value");

В идеале мне нужно значение textarea, я подумал это textarea мне значение не дает, а нет инпуты тоже.



Последнее исправление: Vitorrio (всего исправлений: 1)

В общем воспользовался таким извратом:

QString js;
        js = "var jg=document.getElementById('" + mufirst.attribute("id") + "');";
         js += "jg.setAttribute(\"style\",jg.value); //alert(jg.getAttribute(\"style\"))";


        web->mainFrame()->evaluateJavaScript(js);
        qDebug() << mufirst.attribute("style");
а value ни в какую

Vitorrio
() автор топика

Тег стоит поменять на Qt, больше людей увидит.

CrossFire ★★★★★
()
Последнее исправление: CrossFire (всего исправлений: 1)

Инпут маленькими буквами, апострофы вокруг Id не нужны, и вообще, правильный селектор для поля с Id выглядит как «#» + loginFieldName

Adonai ★★★
()
Ответ на: комментарий от Adonai

Даже с маленькими буквами, и даже с апострофами вокруг, элемент он определяет правильно. и вот это тому подтверждение

qDebug() << firstTextInput.attribute("id");
он выводит id этого самого найденного элемента, выводит style, а value не хочет

Vitorrio
() автор топика

не увидел, как ты устанавливаешь value, так? firstTextInput .setAttribute(«value», «азаза!»);

evaluateJavaScript можно звать прямо у QWebElement: textInput.evaluateJavaScript(«this.value = \„азаза!\“»);

а если это textarea, наверное надо разбираться с textArea.appendInside(..., добавить какую-нибудь текстовую ноду детенышем

stevejobs ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.